У меня есть файл tests.js
, который содержит некоторые test(...)
определения.Я хочу повторно использовать эти тесты для нескольких приборов, желательно без внесения каких-либо изменений в исходный код.
Поэтому я написал main.js
, который определяет прибор и импортирует tests.js
, тем самым "собирая" набор тестов.,(В случае, если это работает, я мог бы написать разные файлы драйверов с разными приборами, импортируя одинаковые tests.js
изнутри каждого.)
Однако при попытке выполнить * 1011 я получаю ошибку test is not defined
*:
C:\Windows\Temp\dummy>testcafe chrome main.js --debug-on-fail
ERROR Cannot prepare tests due to an error.
ReferenceError: test is not defined
at Object.<anonymous> (C:\Windows\Temp\dummy\tests.js:1:1)
at Object.<anonymous> (C:\Windows\Temp\dummy\main.js:7:1)
Type "testcafe -h" for help.
Минимальная выборка:
// tests.js
test('wait', async t => {
await t.wait(1);
});
// main.js
fixture `here goes the name`
.page("http://localhost:3000")
.beforeEach(async t => {
// do stuff
});
import "./tests";
/*
trick testcafe to scan the file;
based on https://github.com/DevExpress/testcafe/issues/2889#issuecomment-423859785
test();
*/
Я уже пробовал:
- удаление хака комментария блока (
test();
) - который дает ERROR No tests to run. Either the test files contain no tests or the filter function is too restrictive.
- перемещение
tests.js
импорта в верх - по-прежнему дает test is not defined
- импорта
testcafe
изнутри main.js
и tests.js
- та же ошибка
Есть ли способ сделать функцию test
"видимой" для других файлов, импортированных файлом точки входа testcafe?Или мне действительно нужно изменить файл tests.js
, чтобы это работало?Может быть, добавив определения тестов в метод и вызвав его из main.js
- как в исходном примере кода этой проблемы ?