我已经阅读了 Jest 文档,我认为它们是按这个顺序运行的。我还了解到 globalSetup 在不同的进程中运行,因此不与常规测试套件共享任何范围,而是与 globalTeardown 共享任何范围,因此这将是启动测试数据库服务器的好地方。
无论如何,我不清楚我是否做对了以及我应该使用其他的做什么。
Bri*_*ams 56
globalSetup导出函数的模块的路径,该async函数将在所有操作之前运行一次。此处定义的全局变量只能在globalTeardown.
通常,模拟任何依赖项更有意义,但如果您别无选择,只能启动数据库或其他在测试期间绝对必须运行的外部服务,globalSetup就可以这样做。
setupFiles/setupFilesAfterEnvsetupFiles是在每个测试文件之前和安装测试框架之前运行一次的模块列表。
setupFilesAfterEnv是在每个测试文件之前但在环境中安装测试框架之后将运行一次的模块列表。
通常setupFilesAfterEnv是在每个测试文件之前运行的任何设置代码的正确位置。setupFiles仅当您有特定原因需要在安装测试框架之前运行代码时才使用。
您可以将其视为setupFilesAfterEnv全局beforeAll.
如果必须在每个测试文件的开头执行某些操作(例如:配置 Enzyme 适配器),则在文件中执行一次是有意义的setupFilesAfterEnv。
beforeAllJest将运行所有beforeAll测试文件中的所有函数一次。
使用beforeAll必须在一个特定测试文件开头运行一次的代码。
包.json
\n{\n\n ...\n\n "jest": {\n "globalSetup": "./globalSetup.js",\n "globalTeardown": "./globalTeardown.js",\n "setupFiles": ["./setupFile.js"],\n "setupFilesAfterEnv": ["./setupFileAfterEnv.js"]\n }\n}\n\nRun Code Online (Sandbox Code Playgroud)\n全局设置.js
\n{\n\n ...\n\n "jest": {\n "globalSetup": "./globalSetup.js",\n "globalTeardown": "./globalTeardown.js",\n "setupFiles": ["./setupFile.js"],\n "setupFilesAfterEnv": ["./setupFileAfterEnv.js"]\n }\n}\n\nRun Code Online (Sandbox Code Playgroud)\n全局Teardown.js
\nmodule.exports = async () => {\n console.log(\'in globalSetup\');\n global.GLOBALSETUP = \'globalSetup\';\n};\nRun Code Online (Sandbox Code Playgroud)\nsetupFile.js
\nmodule.exports = async () => {\n console.log(\'in globalTeardown\');\n console.log(global.GLOBALSETUP);\n};\nRun Code Online (Sandbox Code Playgroud)\nsetupFileAfterEnv.js
\nconsole.log(\'in setupFile\');\nglobal.order = [];\nglobal.order.push(1);\nRun Code Online (Sandbox Code Playgroud)\n测试.js
\nconsole.log(\'in setupFileAfterEnv\');\nglobal.order.push(2);\nRun Code Online (Sandbox Code Playgroud)\n输出
\nDetermining test suites to run...in globalSetup\n console.log\n in setupFile\n\n at Object.<anonymous> (setupFile.js:1:98)\n\n console.log\n in setupFileAfterEnv\n\n at Object.<anonymous> (setupFileAfterEnv.js:1:1)\n\n console.log\n in beforeAll\n\n at Object.<anonymous>.beforeAll (src/test.js:3:11)\n\n PASS src/test.js\n \xe2\x9c\x93 order (4 ms)\n\nTest Suites: 1 passed, 1 total\nTests: 1 passed, 1 total\nSnapshots: 0 total\nTime: 0.658 s, estimated 1 s\nRan all test suites.\nin globalTeardown\nglobalSetup\n\nWatch Usage: Press w to show more.\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
9112 次 |
| 最近记录: |