Saya memiliki file tests.js
yang berisi beberapa definisi test(...)
. Saya ingin menggunakan kembali pengujian ini di beberapa perlengkapan, sebaiknya tanpa membuat modifikasi apa pun pada kode aslinya.
Jadi saya menulis main.js
yang mendefinisikan perlengkapan dan mengimpor tests.js
, sehingga "merakit" rangkaian pengujian. (Jika berhasil, saya dapat menulis file driver berbeda dengan perlengkapan berbeda, mengimpor tests.js
yang sama dari masing-masing file.)
Namun, saya mendapatkan kesalahan test is not defined
saat mencoba menjalankan main.js
:
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.
Sampel minimal:
// 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();
*/
Saya sudah mencoba:
- menghapus peretasan komentar blok (
test();
) - yang menghasilkanERROR No tests to run. Either the test files contain no tests or the filter function is too restrictive.
- memindahkan impor
tests.js
ke atas - masih menghasilkantest is not defined
- mengimpor
testcafe
dari dalammain.js
dantests.js
- kesalahan yang sama
Apakah ada cara untuk membuat fungsi test
"terlihat" oleh file lain yang diimpor oleh file titik masuk testcafe? Atau apakah saya benar-benar perlu memodifikasi file tests.js
saya agar ini berfungsi? Mungkin dengan menambahkan definisi pengujian ke dalam suatu metode, dan menjalankannya dari dalam main.js
- seperti pada contoh kode asli masalah ini?