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

我目前正在开发一个angular度应用程序的e2etesting。 在运行我的testing套件之前,我必须手动启动后端(.net应用程序) – 我的想法是自动执行此项任务。

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

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

启动selenium独立服务器… [启动]运行WebDriver Selenium独立服务器的一个实例启动在http://10.0.1.56:62023/wd/hub [启动]错误:启动器退出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');\"" } } 

这可能是因为你的testing中没有调用callback函数

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

从它的声音,你的backend.js可能提出了一个启动服务器的请求,但从来没有等待它启动,因为量angular器是在你的后端准备好之前启动的。

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

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

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

如果你有这样的事情,而不是从钩子删除它

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