我有一个TeamCity配置,它将构建部署到QA服务器上,在成功之后,它运行Protractor e2e测试。 我可以从结帐目录手动运行测试并且他们成功了,但是在TeamCity上他们只是超时(我已经将超时阈值增加到3分钟,他们现在需要3分钟才能超时)。
我看到的例外是:
[should find all page controls] [Test Error Output]
A Jasmine spec timed out. Resetting the WebDriver Control Flow.
The last active task was:
Protractor.get(http://[QA SERVER]/#/) - reset url
at [object Object].webdriver.WebDriver.schedule
at [object Object].Protractor.executeScript_
[...]
A Jasmine spec timed out. Resetting the WebDriver Control Flow.
The last active task was:
unknown
[17:27:00][should find all page controls] Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
[17:27:00]
[should find all page controls] Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
at [object Object]._onTimeout (C:\Users\user\AppData\Roaming\npm\node_modules\protractor\node_modules\jasmine\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:1782:23)
at Timer.listOnTimeout (timers.js:110:15)
我将量角器作为命令行执行 - >可执行文件(protractor
)和参数为protractor.conf.ci.js
。
我的量角器配置文件的内容是:
exports.config = {
framework: "jasmine2",
directConnect: true,
baseUrl: 'http://[local server path]/',
allScriptsTimeout: 60000,
capabilities: {
'browserName': 'chrome'
},
jasmineNodeOpts: {
defaultTimeoutInterval: 120000
},
specs: [
'ui/*.uispec.js'
],
onPrepare: function () {
var jasmineReporters = require('jasmine-reporters');
jasmine.getEnv().addReporter(new jasmineReporters.TeamCityReporter());
}
}
我错过了什么吗?看起来有些东西阻止了执行,但是Windows防火墙被禁用了,如果手动执行(使用TeamCity代理使用的相同用户帐户),相同的测试也会运行得很好。
谢谢!