如果脚本失败,NPM应继续执行其他脚本

时间:2015-01-26 09:36:18

标签: angularjs node.js npm protractor

我的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运行整个脚本的解决方案?

1 个答案:

答案 0 :(得分:2)

您应该在beforeLaunchafterLaunch中将设置脚本和拆卸脚本作为量角器的一部分运行,而不是npm。

如果由于某种原因你绝对不想将它作为量角器的一部分运行,你必须将量角器exitCode改为' 0',或者在afterLaunch(example)中或者通过包装围绕量角器运行脚本的脚本。但是,我强烈反对这样做,因为那时你只是掩盖了错误。