gpt4 book ai didi

node.js - 对所有测试只运行一次 ava test.before()

转载 作者:行者123 更新时间:2023-12-02 01:07:36 26 4
gpt4 key购买 nike

我想使用 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。不确定它在那里期望什么。

最佳答案

AVA 在其自己的进程中运行每个测试文件。 test.before() 应该用于设置仅由调用它的进程使用的固定装置。

听起来您想进行可在测试文件/流程中重复使用的设置。理想情况下,这是可以避免的,因为您最终可能会在不同测试的执行之间创建难以检测的依赖关系。

不过,如果这是您所需要的,那么我建议使用 pretest npm 脚本,它会在您执行 npm test 时自动运行。

关于node.js - 对所有测试只运行一次 ava test.before(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46867525/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com