pei*_*ent 7 karma-runner gulp-karma aurelia asp.net-core
我正在尝试在新的ASP.NET 5应用程序中为Aurelia设置骨架导航项目.我已经尝试了很多东西,并且相信我已经接近了,但我真的陷入了客户端测试.
我从GitHub上的Aurelia repo 下载了骨架项目并解压缩.
我利用斯科特·艾伦的建议设置JSPM设置放置JSPM包在wwwroot文件夹中陈述这篇文章.
然后我更新了项目结构,如下所示:
sln
|->wwwroot
|->dist
|->jspm_modules
|->src
|->styles
|->test
|->config.js
|->index.html
|->index.js
|->build
|->Controllers
|->doc
|->node_modules
|->aurelia.protractor.js
|->aureliafile.js
|->gulpfile.js
|->karma.conf.js
|->package.json
|->project.json
|->protractor.conf.js
|->Startup.cs
Run Code Online (Sandbox Code Playgroud)
我有两个问题:
1. Aurelia骨架导航启动项目的测试文件夹应该在哪里生效?一方面,wwwroot很有意义,因为这是其他应用程序特定的javascript文件将存在的地方.另一方面,这些文件不应该被提供给客户端,因此将它们放在wwwroot中并没有多大意义.
2.一旦它们位于项目结构中的适当位置,需要更新哪些文件/值才能使测试正常运行?目前我将它们放在wwwroot目录中.我将karma.conf.js文件中的basePath更新为'wwwroot'.当我执行karma start命令虽然它给我一个404错误试图找到'/base/app-bundle.js'.该文件存在于'wwwroot/dist/app-bundle.js',但我无法弄清楚如何配置karma来找到它.
任何帮助将不胜感激.
基于@PWKad 的答案:
您可能还需要修改传递给 Karma 的配置对象paths的属性,jspm以在每个路径前面添加前缀,base/以便 Karma 可以选取它们。
例如,我的src/App/wwwroot/config.js文件如下所示
paths: {
"*": "app/*",
"github:*": "jspm_packages/github/*",
"npm:*": "jspm_packages/npm/*"
}
Run Code Online (Sandbox Code Playgroud)
我的karma.conf.js样子是这样的
basePath: '',
urlRoot: '/',
jspm: {
config: 'src/app/wwwroot/config.js',
packages: 'src/app/wwwroot/jspm_packages',
loadFiles: 'tests/unit/**/*.js',
serveFiles: 'src/app/wwwroot/app/**/*.js',
paths: {
"app/*": 'base/src/app/wwwroot/app/*',
"test/*": 'base/test/*',
"github:*": 'base/src/app/wwwroot/jspm_packages/github/*',
"npm:*": 'base/src/app/wwwroot/jspm_packages/npm/*'
}
}
Run Code Online (Sandbox Code Playgroud)
该项目针对这种情况设置了工作单元测试。它确实使用 Typescript,但概念是相同的。
| 归档时间: |
|
| 查看次数: |
1073 次 |
| 最近记录: |