Я новичок в Nest JS и в настоящее время изучаю тестирование в Nest JS.
Это обычная проблема, когда наличие beforeEach
с createTestingModule().compile()
и некоторыми module.get()
настолько увеличить выполнение теста?
У меня есть фиктивный тест expect(true)
, который занимает 6 секунд при наличии beforeEach
, где он занимает всего 1 секунду без (и 1 секунду для этого фиктивного теста все еще кажется много) ... Это очень раздражает, когда вы запускаете тест в режиме часов, так как это занимает много времени, а у меня пока только небольшой тест.
Я не смог найти ничего, связанного с этим проблема с Nest JS, поэтому я, вероятно, что-то делаю не так, но я не мог понять, что.
Я пытался использовать некоторые шутливые флаги, такие как --runInBand
или --maxWorkers=4
, но безуспешно.
-
Тестируемое приложение на самом деле представляет собой приложение, созданное с помощью учебника, на этой стороне ничего особенного, чтобы заметить.
Вот мой tasks.service.spec.ts
файл (это единственный тестовый файл, который у меня есть). Я могу предоставить репозиторий Github, если это поможет.
import { Test } from '@nestjs/testing';
import { TaskRepository } from './task.repository';
import { TasksService } from './tasks.service';
const mockTaskRepository = () => ({});
describe('tasks.service', () => {
let tasksService;
let taskRepository;
beforeEach(async () => {
const module = await Test.createTestingModule({
providers: [
TasksService,
{ provide: TaskRepository, useFactory: mockTaskRepository },
],
}).compile();
tasksService = await module.get(TasksService);
taskRepository = await module.get(TaskRepository);
});
describe('Test', () => {
it('pass', () => {
expect(true);
});
});
});
Вот мои настройки шутки в package.json
"jest": {
"moduleFileExtensions": [
"js",
"json",
"ts"
],
"rootDir": "src",
"testRegex": ".spec.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"coverageDirectory": "../coverage",
"testEnvironment": "node",
"moduleNameMapper": {
"^src/(.*)$": "<rootDir>/$1"
}
}
Вот результаты с комментариями beforeEach
и без beforeEach
прокомментировал
# With beforeEach
PASS src/tasks/tasks.service.spec.ts (7.214 s)
tasks.service
Test
✓ pass (10 ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 7.241 s
Ran all test suites.
Watch Usage: Press w to show more.
# Without beforeEach
PASS src/tasks/tasks.service.spec.ts
tasks.service
Test
✓ pass (2 ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 1.561 s, estimated 8 s
Ran all test suites.
Watch Usage: Press w to show more.
Любые подсказки или помощь приветствуются :-) Спасибо!