我的任务是向共享点发送一份守夜报告。我已经全部工作了,我只需要在globals.js文件的“ after”方法中获得test_settings名称,因此在测试完成并生成报告后,我可以由date-env-user命名。
背景:
我正在为环境之间的所有一致环境变量使用env.json
文件。
在我的nightwatch.conf.js
文件中,我有多个“测试设置”环境,例如“本地”,“ qa”等。
当我处于globals.js
文件的“ after()”方法中时,我想获取该值“ local”或“ qa”。
我尝试使用process.env.environment,browser.globals.environment(但是globals.js
中没有'browser')。我也尝试了其他发现的其他变体,但无济于事。
以下是我的nightwatch.conf.js
相关的test_Settings值:
"test_settings": {
"local": {
"launch_url":"http://example.local",
"screenshots": {
"enabled": true, // if you want to keep screenshots
"path": './reports/screenshots/local' // save screenshots here
},
"globals": {
"waitForConditionTimeout": 5000 // sometimes internet is slow so wait.
},
"desiredCapabilities": { // use Chrome as the default browser for tests
"browserName": "chrome"
}
},
"qa": {
"launch_url": "https://qa.example.com",
"screenshots": {
"enabled": true, // if you want to keep screenshots
"path": './reports/screenshots/qa' // save screenshots here
},
"globals": {
"waitForConditionTimeout": 5000 // sometimes internet is slow so wait.
},
"desiredCapabilities": { // use Chrome as the default browser for tests
"browserName": "chrome"
}
},
这是我使用以下命令调用测试的示例命令行
node_modules / .bin / nightwatch --env本地--config nightwatch.conf.BASIC.js --test test \ e2e \ search.js --reporter ./report s / reporter.js
我想从globals.js/after()
方法内部提取“ local”或“ qa”。
再次,但是“浏览器”不可用。
谢谢。
答案 0 :(得分:1)
我将在项目中分享我们的做法,并希望这也适用于您:
let activeEnvironment = require("minimist")(process.argv)["env"];
这样,您可以保存给定的环境变量。 如果这在“ after”方法中不起作用,则可以将其写入临时文件,然后在“ after”方法中读取它。
希望这会有所帮助。