BUG:启动器退出,剩下1个任务

时间:2015-01-16 12:49:48

标签: node.js npm protractor

我目前正在为角度应用开发e2e测试。在运行我的测试套件之前,我必须手动启动后端(.net应用程序) - 我的想法是自动化这项任务。

我遇到了节点模块opener和child_process。我写了一个文件,我在preprotractor中执行npm执行。还有三个文件,其中两个将文件夹从服务器移动到我的桌面,另一个向我的后端发出http post请求。

应用程序在我的selenium独立服务器启动之前打开。然后我收到以下错误通知:

启动selenium独立服务器... [launcher]运行WebDriver的1个实例 Selenium独立服务器从http://10.0.1.56:62023/wd/hub开始 [launcher] BUG:启动器退出,剩下1个任务

您是否有任何想法或提示如何解决此问题?

这是我的package.json:

{
  "name": "xxx",
  "version": "0.0.0",
  "description": "xxx",
  "devDependencies": {
    "bower": "^1.3.1",
    "http-server": "^0.6.1",
    "karma": "~0.10",
    "karma-coverage": "~0.2.1",
    "karma-junit-reporter": "^0.2.2",
    "karma-ng-html2js-preprocessor": "^0.1.0",
    "karma-requirejs": "^0.2.2",
    "protractor": "^1.5.x",
    "shelljs": "^0.2.6",
    "jasmine-reporters": "^1.x",
    "fs-extra": "^0.12.0",
    "pix-diff": "^1.0.4",
    "blink-diff": "^1.0.7"
  },
  "scripts": {
    "postinstall": "bower install",
    "prestart": "npm install",
    "start": "http-server -a localhost -p 8000",
    "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 backend.js",
    "protractor": "protractor test/protractor-conf.js",
    "update-index-async": "node -e \"require('shelljs/global'); sed('-i', /\\/\\/@@NG_LOADER_START@@[\\s\\S]*\\/\\/@@NG_LOADER_END@@/, '//@@NG_LOADER_START@@\\n' + cat('app/bower_components/angular-loader/angular-loader.min.js') + '\\n//@@NG_LOADER_END@@', 'app/index-async.html');\""
  }
}

4 个答案:

答案 0 :(得分:1)

可能是因为您的测试中没有调用回调函数

this.Given(/^Step description$/, function (callback) {
// callback is not called
});

答案 1 :(得分:0)

从它的声音来看,你的backend.js可能提出启动服务器的请求,但从未等待它启动,因为量角器在你的后端准备好之前就开始了。

你想要的可能是(伪代码):

requestBackendStart();
while(backend.getState !== 'started') {
  wait
}

确保在退出脚本之前后端已准备就绪。

答案 2 :(得分:0)

如果您有类似的东西,请将其从挂钩中取出



this.AfterFeatures(function() {
  browser.close(); // not required
});




答案 3 :(得分:0)

对我来说,它是在我的process.exit()内部调用protractor.conf.js,在量角器清理干净之前终止了该过程。