我的package.json文件中有以下脚本,我在cmd中通过 npm run protractor 执行:
"scripts": {
"postinstall": "bower install",
"pretest": "npm install",
"test": "karma start test/karma.conf.js",
"test-single-run": "karma start test/karma.conf.js --single-run",
"preupdate-webdriver": "npm install",
"update-webdriver": "webdriver-manager update",
"preprotractor": "npm run update-webdriver && node setUp.js",
"protractor": "protractor test/protractor-conf.js",
"postprotractor": "node tearDown.js",
}
如果我的所有e2e测试都通过,npm将运行整个脚本 - 也就是我的tearDown.js。但是,如果我的量角器测试失败("量角器":"量角器测试/量角器-conf.js"),npm不会继续执行我的postprotractor文件(I需要tearDown.js,因为它关闭了我的后端)。 有没有让npm运行整个脚本的解决方案?
答案 0 :(得分:2)
您应该在beforeLaunch和afterLaunch中将设置脚本和拆卸脚本作为量角器的一部分运行,而不是npm。
如果由于某种原因你绝对不想将它作为量角器的一部分运行,你必须将量角器exitCode改为' 0',或者在afterLaunch(example)中或者通过包装围绕量角器运行脚本的脚本。但是,我强烈反对这样做,因为那时你只是掩盖了错误。