may*_*o19 5 testing node.js jestjs
我正在使用 Jest 进行测试。如何访问当前正在运行的测试的文件名或文件路径?
我需要一个条件语句,根据它是单元测试文件还是集成测试文件来运行不同的代码行。
这是我想要实现的目标的示例:
beforeAll(() => {
if (integration_test_file){
// run this this code
} else if (unit_test_file){
// run this code instead
}
})
Run Code Online (Sandbox Code Playgroud)
此信息在 Jest 环境中可用。这是自定义环境的情况:
const Environment = require('jest-environment-node'); // or jest-environment-jsdom
module.exports = class MyEnvironment extends Environment {
constructor(config, context) {
super(config, context);
this.testPath = context.testPath;
}
async setup() {
await super.setup();
this.global.IS_INTEGRATION = /match integration/.test(this.testPath);
}
}
Run Code Online (Sandbox Code Playgroud)
为每个测试套件实例化环境,testPath包含当前测试文件的完整路径。
IS_INTEGRATIONsetupFilesAfterEnv全局变量将在并测试自身中可用。如果需要对所有测试评估代码,它可能属于环境setup和teardown方法。
您可以通过其全局变量访问在 jest 中运行的测试的文件路径的名称。
文件路径可以在全局变量下找到
jasmine.testPath
Run Code Online (Sandbox Code Playgroud)
或者
global.jasmine.testPath
Run Code Online (Sandbox Code Playgroud)
这个答案仅适用于您使用 jest 及其默认测试运行程序“jasmine”或“jasmine2”的情况。结果会根据您使用的测试运行程序而有所不同。请参阅 https://jestjs.io/docs/en/configuration#testrunner-string
| 归档时间: |
|
| 查看次数: |
5455 次 |
| 最近记录: |