Jest 的顺序测试场景

Sequential test scenarios for Jest

我已经开始使用create-react-app for my React projects, and as a testing library it comes with Jest

作为我的 React 应用程序的一部分,我喜欢创建 集成测试 (以及单元测试),因为我发现能够检查应用程序按预期工作。例如:使用 Enzyme, but only mock out the http calls (using Sinon) 呈现(装载)页面,以便立即执行完整的 React/Redux 流程。

在使用 create-react-app 之前,我使用 Mocha 进行测试,我发现 mocha-steps 是集成测试的一个很好的扩展,因为它允许按顺序执行组中的测试, 并在步骤失败时处理停止而不停止整个测试 运行.

问题:有没有办法让 Jest 以类似的方式运行?具体来说,我希望能够在一个组中指定一系列测试(例如在 describe) 中并让它们按顺序执行。

我一直在查看 Jest 文档或任何其他扩展它的库,但我一无所获。目前,感觉唯一的选择就是进行一次大型测试,这让我很伤心,如果可以避免的话,我宁愿不要将 Jest 换成 Mocha。

谢谢!

jest 目前不支持将特定测试标记为 运行 连续(如 avatest.serial)。

这已经 requested before 但我认为他们没有在努力。

解决方法是让您确定哪些测试文件要同时运行,哪些测试文件要连续运行。

例如,我通常用 *.test.js 命名我的单元测试,用 *.spec.js 命名我的集成测试。

然后我可以 运行 我的单元测试同时进行。

$ jest '(/__tests__/.*\.test)\.js$'

而且我可以 运行 我的连续集成测试。

$ jest '(/__tests__/.*\.spec)\.ts$' --runInBand

我可以在 package.json 中将两者结合起来。

"scripts": {
    "unit": "jest '(/__tests__/.*\.test)\.js$'",
    "integration": "jest '(/__tests__/.*\.spec)\.ts$' --runInBand",
    "test": "npm run unit && npm run integration"
}

运行 npm test 然后可以 运行 先并发测试,然后是串行测试。