5

我在模板中有一个带有图像的组件

 <div class="logo"><img src="../images/logo.png"/></div>

运行业力任务时会引发此类错误

Uncaught Error: Cannot find module "../images/logo.png"

提到该应用程序可以很好地渲染图像,只有业力在抱怨。

任何建议将被认真考虑。

4

3 回答 3

20

你可以尝试这样的事情:

it('should render the logo', async(() => {
  const fixture = TestBed.createComponent(AppComponent);
  fixture.detectChanges();
  const compiled = fixture.debugElement.nativeElement;
  expect(compiled.querySelector('div.logo>img').src).toContain('/images/logo.png');
}));
于 2017-11-14T18:12:06.340 回答
1

假设您正在使用 karma-jasmine 来运行测试。这些文件将托管在端口 9876 上。

假设您的 img src 是./assets/images/logo.png,那么您应该期望 src 是http://localhost:9876/assets/images/logo.png而不仅仅是./assets/images/logo.png

于 2017-08-08T15:19:02.167 回答
0

您还可以使用 karma.conf.js 中的 proxies 和 files 属性来提供文件并代理它。

在 files 属性中添加要提供的文件

{ pattern: './src/assets/**', watched: false, included:false, served:true, nocache:false }

还要用不同的 url/ 路径代理这些文件,更新代理属性

proxies: {
   '/assets/': '/base/src/assets/'
}

现在,当您尝试访问http://localhost:9876/assets/logo.png它时,它将是一个代理调用src/assets/logo.png(所有 src 资产也可以像这样访问http://localhost:9876/base/src/assets/logo.png

于 2020-06-23T08:56:39.193 回答