我想使用test.before()
来引导我的测试。我尝试过的设置不起作用:
// bootstrap.js
const test = require('ava')
test.before(t => {
// do this exactly once for all tests
})
module.exports = { test }
// test1.js
const { test } = require('../bootstrap')
test(t => { ... {)
AVA将在每个测试文件之前运行before()
函数。我可以在before
电话中进行检查,以检查是否已拨打电话,但我想找一个更干净的流程。我尝试将require
参数用于:
"ava": {
"require": [
"./test/run.js"
]
}
使用:
// bootstrap,js
const test = require('ava')
module.exports = { test }
// run.js
const { test } = require('./bootstrap')
test.before(t => { })
// test1.js
const { test } = require('../bootstrap')
test(t => { ... {)
但这只是打破了worker.setRunner is not a function
。不确定它在那里的期望。
答案 0 :(得分:0)
AVA在自己的进程中运行每个测试文件。 test.before()
应该用于设置仅在其调用的过程中使用的灯具。
听起来您想要在测试文件/进程中重复使用的设置。理想情况下,这可以避免,因为您最终可能会在执行不同测试之间创建难以检测的依赖关系。
尽管如此,如果这是您所需要的,那么我建议您使用pretest
npm脚本,该脚本会在您执行npm test
时自动运行。
答案 1 :(得分:0)
您可以在您的package.json
中首先运行设置脚本...
"scripts": {
"test": "node setup-test-database.js && ava '*.test.js'"
}
然后...
setup-test-database.js
文件中,让它满足您的所有引导需要,并保存一个test-config.json
文件以及您通过测试所需的一切。const config = require('./test-config.json');
,就可以访问所需的数据。