Что вы можете сделать, это добавить сценарий, содержащий функцию afterAll
:
afterAll(() => {
console.log("I ran");
});
и добавить сценарий в setupFiles
или setupFilesAfterEnv
. В моем случае я выкинул один реагирующий код po c, который не прошел тесты:
В конфигурации Jest package.json
была эта запись:
"jest": {
...
"setupFilesAfterEnv": [
"<rootDir>/src/setupTests.js"
],
...
}
Поэтому я добавил в setupTests.js
ниже приведен отредактированный файл:
// jest-dom adds custom jest matchers for asserting on DOM nodes.
// allows you to do things like:
// expect(element).toHaveTextContent(/react/i)
// learn more: https://github.com/testing-library/jest-dom
import '@testing-library/jest-dom/extend-expect';
afterAll(() => {
console.log("I ran");
});
Теперь, когда я запускал свои тесты, это результат:
FAIL src/App.test.js
✓ renders learn react link (14ms)
✕ renders class (5ms)
● renders class
expect(jest.fn()).toHaveBeenCalledTimes(expected)
Expected number of calls: 1
Received number of calls: 0
18 | // someClass.someProp = "";
19 | render(<App />);
> 20 | expect(track).toHaveBeenCalledTimes(1);
| ^
21 | });
22 |
at Object.<anonymous> (src/App.test.js:20:17)
console.log src/setupTests.js:8
I ran <---------------
Test Suites: 1 failed, 1 total
Tests: 1 failed, 1 passed, 2 total
Snapshots: 0 total
Time: 1.352s, estimated 2s
Ran all test suites.
Вы можете видеть, что I ran
там даже после провала теста. Это альтернатива, которую вы можете использовать, поскольку вы положили награду, я подумал, что, возможно, решение проблемы более важно, чем то, почему globalTeardown
не работает.