[英]Separation of unit tests and integration tests
我有兴趣创建完整的模拟单元测试,以及检查某些异步操作是否正确返回的集成测试。 我想要一个用于unit
测试的命令和一个用于integration
测试的命令,这样我就可以在我的 CI 工具中单独运行它们。 做到这一点的最佳方法是什么? 像 mocha 和 jest 这样的工具似乎只专注于一种做事方式。
我看到的唯一选择是使用 mocha 并在一个目录中有两个文件夹。
类似的东西:
__unit__
__integration__
然后我需要某种方式告诉 mocha 运行src
目录中的所有__unit__
测试,另一种方式告诉它运行所有__integration__
测试。
想法?
Mocha 支持目录、文件通配和测试名称grepping ,可用于创建测试“组”。
test/unit/whatever_spec.js
test/int/whatever_spec.js
然后对目录中的所有js
文件运行测试
mocha test/unit
mocha test/int
mocha test/unit test/int
test/unit_whatever_spec.js
test/int_whatever_spec.js
然后针对特定文件运行 mocha
mocha test/unit_*_spec.js
mocha test/int_*_spec.js
mocha
在 mocha 中创建描述测试类型和类/主题的外部块。
describe('Unit::Whatever', function(){})
describe('Integration::Whatever', function(){})
然后使用 mochas "grep" 参数运行命名块--grep
/ -g
mocha -g ^Unit::
mocha -g ^Integration::
mocha
在使用测试名称时保持文件或目录分隔仍然很有用,这样您就可以轻松区分失败测试的源文件。
将每个测试命令存储在您的 package.json scripts
部分,以便使用诸如yarn test:int
或npm run test:int
类的东西很容易运行。
{
scripts: {
"test": "mocha test/unit test/int",
"test:unit": "mocha test/unit",
"test:int": "mocha test/int"
}
}
mocha 不支持标签或类别。 你理解正确。 必须创建两个文件夹,unit和integration,像这样调用mocha
摩卡单元摩卡集成
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.