我在模板中有一个带有图像的组件
<div class="logo"><img src="../images/logo.png"/></div>
运行业力任务时会引发此类错误
Uncaught Error: Cannot find module "../images/logo.png"
提到该应用程序可以很好地渲染图像,只有业力在抱怨。
任何建议将被认真考虑。
我在模板中有一个带有图像的组件
<div class="logo"><img src="../images/logo.png"/></div>
运行业力任务时会引发此类错误
Uncaught Error: Cannot find module "../images/logo.png"
提到该应用程序可以很好地渲染图像,只有业力在抱怨。
任何建议将被认真考虑。
你可以尝试这样的事情:
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');
}));
假设您正在使用 karma-jasmine 来运行测试。这些文件将托管在端口 9876 上。
假设您的 img src 是./assets/images/logo.png
,那么您应该期望 src 是http://localhost:9876/assets/images/logo.png
而不仅仅是./assets/images/logo.png
您还可以使用 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
)