我有正确的配置文件,配置文件,在后台运行,只是伟大的。只要我改变并保存一个文件,它就会重新执行测试......全部750个单元测试。我想只能运行几个。缺少手动黑客配置文件或注释掉很多文件中的数百个测试,有没有简单的方法来做到这一点?如何在业力中只运行某些测试?
E.g.当使用说摩卡运行命令行服务器测试时,我只使用正则表达式:mocha -g 'only tests that I want'
。使它更容易调试和快速检查。
我有正确的配置文件,配置文件,在后台运行,只是伟大的。只要我改变并保存一个文件,它就会重新执行测试......全部750个单元测试。我想只能运行几个。缺少手动黑客配置文件或注释掉很多文件中的数百个测试,有没有简单的方法来做到这一点?如何在业力中只运行某些测试?
E.g.当使用说摩卡运行命令行服务器测试时,我只使用正则表达式:mocha -g 'only tests that I want'
。使它更容易调试和快速检查。
不幸的是,你可以在业务启动时做到这一点,而不是在运行时。 如果你想动态地改变它,你必须付出更多的努力。
说你要专注于特定的一组/套件从一开始的测试中,在karma-mocha
plugin page有此片段的代码做你想要什么:
module.exports = function(config) {
config.set({
// karma configuration here
...
// this is a mocha configuration object
client: {
// The pattern string will be passed to mocha
args: ['--grep', '<pattern>'],
...
}
});
};
为了使<pattern>
参数你必须将配置文件包装在配置器中,该配置文件将监听CLI并为您自定义karma配置。
看看this SO answer知道如何设置一个非常简单的配置器。
所以现在我觉得很愚蠢。摩卡支持非常窄的正则表达式匹配版本。
这种运行所有测试
describe('all tests',function(){
describe('first tests',function(){
});
describe('second tests',function(){
});
});
这只是运行的第一个测试“
describe('all tests',function(){
describe.only('first tests',function(){
});
describe('second tests',function(){
});
});
你也可以做it.only()
我应该已经注意到了。叹。
我有同样的问题,这是我对karma.conf.js稍作修改的工作。 事实上,从命令行获取参数并修改“文件”中的模式。我使用minimist来解析参数列表。
在配置文件中:
/* Begin */
var minimist = require('minimist');
var argv = minimist(process.argv);
var testBase="test/unit";
var testExt=".spec.js";
var unitTestPattern = testBase+'/**/*'+testExt;
if ("test" in argv){
unitTestPattern = testBase+"/"+argv["test"]+testExt;
}
/* End */
module.exports = function(config){
config.set({
//....
files : [
//....
unitTestPattern, //place here
// 'test/unit/**/*.spec.js', //replace this
//....
],
//....
});
};
运行在命令提示符:
karma start test/karma.conf.js --single-run --test #TEST_CASE_FILE#
一个很好的扩展,可以帮助这里是卡玛 - 茉莉HTML的记者,livereload https://www.npmjs.com/package/karma-jasmine-html-reporter-livereload
或karma-jasmine-html-reporter https://www.npmjs.com/package/karma-jasmine-html-reporter?__hstc=72727564.86845f057bb4d741f59d578059e30644.1443860954685.1453095135802.1453138187458.37&__hssc=72727564.1.1453138187458&__hsfp=2285154675
它创建一个可以单独运行每个测试的调试页面。对于大型项目非常有用!
呵呵,我没有看到。因此,不是自动重新运行所有测试,而是在调试页面选择它们? – deitch 2016-01-19 05:56:13
如果你保留Karma的singlerun:假你可以运行单独的测试 – 2016-01-19 20:10:16
1)在你的karma.conf中。JS从终端获得PARAMS:
var files = (process.env.npm_config_single_file) ? process.env.npm_config_single_file : 'test/test_index.js';
2)为了运行一个测试,你将需要设置的选项对象与所有配置(无文件和预处理器):
var option = {
webpack: {
// webpack configuration
},
// more configuration......
};
3)设置你的文件路径和预处理器:
option.files = [
{pattern: files, watch: false}
];
option.preprocessors = {};
option.preprocessors[files] = [ 'webpack', 'sourcemap' ];
// call config.set function
config.set(option);
4)运行在终端:
npm test --single_file=**/my-specific-file-spec.js
欲了解更多信息,请查阅此PR: https://github.com/webpack/karma-webpack/pull/178
谢谢。我读过它,但即使这也取决于评论栏。当我运行命令行测试时,这很好;我只是'摩卡-g'表达''。但业力需要一段时间才能启动并自动重播。我希望能够拥有一些文件,我可以在其中包含我刚更改的文件,并自动将其提取出来。有任何想法吗? – deitch 2014-10-29 13:34:41