【发布时间】:2018-11-28 22:19:34
【问题描述】:
我正在通过 npm 运行 protractor v4.0.9,并注意到我在 Visual Studio Team Services 上的构建不会失败,即使测试报告为失败。进一步研究这一点,我引入了一个错误,因此测试会失败,然后在本地运行它们。如下面的屏幕截图所示,我有 17/17 次失败的测试,但退出代码仍然是 0,我理解这是成功的。它甚至说chrome #01 passed,我认为这是错误的。
这是我的量角器配置:
"use strict";
exports.config = {
baseUrl: process.env.npm_package_config_baseUrl,
framework: 'jasmine',
capabilities: {
browserName: 'chrome'
},
specs: ['test/*.spec.js'],
rootElement: 'se-app',
directConnect: true,
ignoreUncaughtExceptions: false,
onPrepare: function () {
var globals = require('protractor');
var browser = globals.browser;
browser.ignoreSynchronization = true;
browser.manage().window().maximize();
var specReporter = require('jasmine-spec-reporter');
// add jasmine spec reporter
jasmine.getEnv().clearReporters();
jasmine.getEnv().addReporter(new specReporter({
displayStacktrace: false
}));
var reporters = require('jasmine-reporters');
jasmine.getEnv().addReporter(new reporters.JUnitXmlReporter({
savePath: 'junit/'
}));
},
};
我检查了documentation for the Protractor config,但看不到任何会导致这种情况发生的明显设置。我什至在ignoreUncaughtExceptions:false(如上所示)中添加了明确但没有任何区别。
【问题讨论】:
-
您使用的是什么版本的节点?我遇到了一个奇怪的问题,我使用的是更新版本的节点,并且所有测试都立即通过了。我不得不恢复到旧版本的节点。我发现它可以与 4.2.4 一起使用,但我不得不删除我的节点模块文件夹并再次执行 npm 安装。
-
我使用的是 v7.2.0。然而,我第一次发现问题的构建服务器使用的是 v5(不确定是哪个版本,因为我现在也将它更新到 v7.2.0)。
-
我意识到我刚刚说的是更新版本。我使用的较新版本是 4.5,这给了我这个问题。我使用的一件事是 nvm 在不同版本的节点之间轻松切换。我的问题与您的问题不完全相同,但它发生在我团队中的几个人身上 b/c 我们正在使用 4.5 版进行我们正在处理的不同项目
-
您的配置看起来很正常,我建议您删除部分 onPrepare 或一起删除您的 onPrepare,看看它是否返回 0 以外的值。我还建议使用最新版本的 Protractor: 4.0.11
-
你能添加下面的
afterLaunch()方法来真正检查退出代码值afterLaunch: function(exitCode) { console.log('exit code is' + exitCode) },
标签: angular npm protractor azure-devops