我正在设置一个寻找所有单元测试文件的业力任务。我需要访问所有*.js
个文件和*.spec.js
个文件,但我想排除所有*.e2e.js
个文件。根据{{3}}文档,我希望以下工作(在karma.conf.js中):
files: [
'vendor/angular/angular.js',
'vendor/angular-mocks/angular-mocks.js',
'vendor/angular-resource/angular-resource.js',
'app/**/*.js',
'!app/**/*.e2e.js'
],
然而,当我尝试运行我的grunt test
任务时,它仍然会尝试加载这些e2e.js
测试,这会因为每个测试都引用量角器而被破坏,因为业力因此而被人们迷惑了。根据我的控制台,我看到URL是这样的:
userdirectory/repo/!app/mytest.e2e.js
似乎完整的文件路径(或至少其中一些)正在预先添加到我在karma.conf.js中提供的文件glob模式中。在加载业力任务之后,grunt会这样做吗?
答案 0 :(得分:7)
我的问题是业力不使用与grunt相同的globber语法。根据业力的documentation,您可以使用“文件”来显示要包含的内容,并使用exclude
来显示要排除的内容:
exclude
Type: Array
Default: []
Description: List of files/patterns to exclude from loaded files.
这是我的修复:
files : [
// libraries / vendor files needed to test souce code
'vendor/angular/angular.js',
'vendor/angular/angular-route.js',
'vendor/angular/angular-mocks.js',
'vendor/require/*.js',
// all souce .js files, as well as all .spec.js test files
'app/modules/**/*.js'
],
exclude : [
// exclude all *.e2e.js end to end test files from being included
// - Karma will break when trying to load protractor
'app/modules/**/*.e2e.js'
]