Я пишу обширные тесты для нового API с помощью шуток и супертестов. Перед запуском тестов я настраиваю тестовую базу данных и заполняю ее пользователями:
Команда тестирования
jest --forceExit --config src/utils/testing/jest.config.js
jest.config.js
module.exports = {
rootDir: process.cwd(),
// Sets up testing database with users
globalSetup: './src/utils/testing/jest.setup.js',
// Ensures connection to database for all test suites
setupTestFrameworkScriptFile: './src/utils/testing/jest.db.js',
}
Итак, я начинаю с базы данных некоторых пользователей для тестирования. Проблема заключается в следующем:
Некоторые из моих тестов основаны на успехе других тестов. В этом приложении пользователи могут загружать изображения и группировать их в пакеты. Поэтому мой набор конечных точек группировки зависит от успеха моего пакета загрузки изображений и т. Д.
Мне хорошо известно, что многие люди могут сказать, что это плохая практика, и что тесты не должны опираться на другие тесты. При этом я действительно предпочел бы сохранить все свои тесты через supertest
, а не впрыскивать в зависимости и т. Д. Я не хочу тщательно настраивать условия тестирования (например, искусственно создавать несколько пользовательских изображений перед запуском). тесты), потому что: (1) это просто дублирование логики, и (2) это увеличивает вероятность того, что что-то сломается.
Есть ли способ сгруппировать шутливые сюиты? Например, запускать наборы по порядку:
jest run creationSuite
jest run modificationSuite
Таким образом, все мои тесты "creationSuite" могут быть запущены одновременно, и при успешном выполнении all будет запускаться "ificationSuite "и т. Д. Без сбоев.
В качестве альтернативы было бы неплохо указать внутри набора тестов зависимости от других наборов тестов:
describe('Grouping endpoint', () => {
// Somehow define deps
this.dependsOn(uploadSuite)