小编Coc*_*ett的帖子

尝试运行“ ng测试”时,没有提供MatSnackBar错误的提供程序

因此,我试图在Angular 4 Angular CLI上运行“ ng test”。我遇到了许多问题,例如如果测试失败,UI不会加载任何有用的消息,但是幸运的是控制台可以正常工作。无论如何,发生此错误是说我没有在规范中给MatSnackBar一个提供者,但是当我这样做时,我得到了另一个错误。

Chrome 66.0.3359 (Linux 0.0.0) BranchNameCellComponent should create FAILED
    Error: No provider for MatSnackBar!
Run Code Online (Sandbox Code Playgroud)

当我包含MatSnackBar作为导入时出错

Chrome 66.0.3359 (Linux 0.0.0) BranchNameCellComponent should create FAILED
    Failed: Unexpected value 'MatSnackBar' imported by the module 'DynamicTestModule'. Please add a @NgModule annotation.
Run Code Online (Sandbox Code Playgroud)

在我的组件代码中,我要导入MatSnackBar并在构造函数中调用它。工作正常。

import { MatSnackBar } from '@angular/material';
....
constructor(private httpClient: HttpClient, private fb: FormBuilder, public snackBar: MatSnackBar) { }
Run Code Online (Sandbox Code Playgroud)

但是在规范中,我没有用。

import { MatSnackBar } from '@angular/material';
....
describe('BranchNameCellComponent', () => {
  let component: BranchNameCellComponent;
  let fixture: ComponentFixture<BranchNameCellComponent>;

  beforeEach(async(() …
Run Code Online (Sandbox Code Playgroud)

testing angular-material angular-cli angular

9
推荐指数
3
解决办法
6761
查看次数

如何通过 docker run 将本地文件作为参数传递?

我有一个像这样的 Dockerfile:

FROM python:3.6
RUN mkdir /code
COPY dist/python-0.1.0.tar.gz /code
WORKDIR /code
RUN pip install python-0.1.0.tar.gz
ENTRYPOINT ["post"]
Run Code Online (Sandbox Code Playgroud)

“post”命令可以正常运行我的代码,无需任何参数。我的问题是如何让 docker 容器在运行时排除本地文件,因为它可能会发生变化。

这是我运行脚本的命令,但说没有这样的文件或目录 data/output.xml

docker run container data/output.xml
Run Code Online (Sandbox Code Playgroud)

我也尝试过这个但没有运气

docker run -v data:/data containter /data/output.xml
Run Code Online (Sandbox Code Playgroud)

感谢您的任何帮助!

python docker dockerfile docker-entrypoint

4
推荐指数
1
解决办法
8314
查看次数

Angular 4 如何在 Observable 中对订阅进行单元测试

我正在尝试测试我用于 Angular CLI 项目的服务。我已经测试了其中的所有功能,除了那些有订阅的功能,而订阅给我带来了麻烦。请帮忙。我应该如何测试这个功能?

import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Rx';
import { HttpClient } from '@angular/common/http';
import * as moment from 'moment';

@Injectable()
export class BuildService {

  constructor(private httpClient: HttpClient) { }

  index() {
    let o = new Observable( observer => {
      this.httpClient.get("/api/build").subscribe(builds => {
        this.setInitialResultsValue(builds);
        observer.next(builds);
        observer.complete();
      });
    });
    return o;
  }
}
Run Code Online (Sandbox Code Playgroud)

当前的测试尝试:

import { TestBed, inject } from '@angular/core/testing';
import { HttpClientTestingModule } from '@angular/common/http/testing';
import { MockBackend } from '@angular/http/testing'; …
Run Code Online (Sandbox Code Playgroud)

angular angular4-httpclient

0
推荐指数
1
解决办法
1万
查看次数