Запустите ava test.before() только один раз для всех тестов
Я хотел бы использовать 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
, Не уверен, что он ожидает там.
1 ответ
AVA запускает каждый тестовый файл в своем собственном процессе. test.before()
должен использоваться для настройки приборов, которые используются только процессом, в котором он вызывается.
Похоже, вы хотите выполнить настройку, которая повторно используется в ваших тестовых файлах / процессах. В идеале этого следует избегать, поскольку в итоге вы можете создать трудно обнаруживаемые зависимости между выполнением различных тестов.
Тем не менее, если это то, что вам нужно, то я бы предложил использовать pretest
скрипт npm, который запускается автоматически при выполнении npm test
,
В вашем 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');
и вы получите доступ к нужным вам данным.