我有一个模板中有图像的组件
<div class="logo"><img src="../images/logo.png"/></div>
当运行业力任务时,它会抛出这样的错误
Uncaught Error: Cannot find module "../images/logo.png"
要提到应用程序渲染图像正常,只有业力抱怨。
任何建议都将受到赞赏。
答案 0 :(得分:6)
您可以尝试这样的事情:
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');
}));
答案 1 :(得分:0)
让我们假设您正在使用karma-jasmine来运行测试。这些文件将托管在端口9876上。
假设您的img src为./assets/images/logo.png
,那么您应该期望src为http://localhost:9876/assets/images/logo.png
而不仅仅是./assets/images/logo.png
答案 2 :(得分:0)
您还可以使用karma.conf.js中的代理和文件属性来提供文件并对其进行代理。
在文件属性中添加要投放的文件
{ 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
这样访问)