我正在为我们的项目设置测试运行器任务,但遇到了一些意外的情况。我们的任务没有使用以下模式获取任何文件:
'/tests/**/*.spec.js'
Run Code Online (Sandbox Code Playgroud)
我们的目录结构是这样的:
--Scripts
--app
--tests
-test.spec.js
-gulp.js
-karma.conf.js
etc.
Run Code Online (Sandbox Code Playgroud)
然而,这是提出了 0 个测试用例。当我将模式更改为:
'/tests/*.spec.js'
Run Code Online (Sandbox Code Playgroud)
然后它就会按预期工作。现在,我知道这/**/*spec.js是“零个或多个子目录中以“spec.js”结尾的文件”的模式。但是,感觉应该有一个简单的模式来表示“此目录和零个或多个子目录中以“spec.js”结尾的所有文件”。否则,如果我的结构如下所示,我知道必须使用这两种模式:
--Scripts
--app
--tests
-test.spec.js
--subTests
-test2.spec.js
-gulp.js
-karma.conf.js
etc.
Run Code Online (Sandbox Code Playgroud)
上面的内容需要我的 gulp 任务如下所示:
gulp.task('unit-test', ['lint'], function (done) {
gulputil.log('Running unit tests...');
//return gulp.src(testFilesDirect).pipe(jasmine({ verbose: true, includeStackTrace: true }));
new KarmaServer({
configFile: __dirname + '/karma.conf.js',
files: ['/tests/*.spec.js', '/tests/**/*.spec.js'],
// Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun: false
}, done).start();
});
Run Code Online (Sandbox Code Playgroud)
这是正确的还是我错过了一些不需要两个测试模式的基本内容?
这里还有另一篇文章讨论符号链接:Gulp - Target all files in a folder and its subfolders
但这似乎是针对更加本地化的设置,而我的情况需要成为自动化构建系统的一部分,此外,这些解决方案涉及 Linux 或 Mac,而我们的系统是基于 Windows 的。
| 归档时间: |
|
| 查看次数: |
3309 次 |
| 最近记录: |