我应该如何配置我的 TFS 构建,以便可以在浏览器堆栈中运行 Protractor e2e 测试,并返回一些测试失败的 html 报告?我是 TFS 的新手。我可以从我的机器上手动完成,但不确定我是否可以在 TFS 中完成。 这是我的 Protractor 配置的样子:
var project = 'testProject',
build = 'build_4',
acceptSslCerts = 'true';
var HtmlScreenshotReporter = require('protractor-jasmine2-screenshot-reporter');
var reporter = new HtmlScreenshotReporter({
dest: './html-report/',
filename: 'my-report.html',
reportOnlyFailedSpecs: false,
captureOnlyFailedSpecs: true,
showSummary: true,
});
module.exports.config = {
framework: 'jasmine2',
seleniumAddress: 'http://hub.browserstack.com/wd/hub', /* 'http://localhost:4444/wd/hub', */
allScriptsTimeout: 40000,
specs: [ 'test-spec.js' ],
capabilities: {
browserName: 'chrome',
loggingPrefs: { driver: 'ALL', server: 'ALL', browser: 'ALL' },
'build' : 'version3',
'project' : 'newintropage',
'browserstack.user': 'browserstack.user',
'browserstack.key': 'browserstack.key',
'browser': 'Edge',
'browser_version': '13.0',
'os': 'Windows',
'os_version': '10',
'resolution': '1024x768',
'acceptSslCerts': acceptSslCerts
},
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 40000
},
// Setup the report before any tests start
beforeLaunch: function () {
return new Promise(function (resolve) {
reporter.beforeLaunch(resolve);
});
},
onPrepare: function () {
jasmine.getEnv().addReporter(reporter);
},
// Close the report after all tests finish
afterLaunch: function (exitCode) {
return new Promise(function (resolve) {
reporter.afterLaunch(resolve.bind(this, exitCode));
});
}
};
这就是我的 tfs 构建的样子:
最佳答案
根据屏幕截图,您正在使用 vNext 构建,并且您选择了默认的“Visual Studio”构建模板。
TFS vNext 构建系统是基于任务的,非常灵活。我不熟悉 Protractor 端到端测试,但基于 description of Protractor ,至少,你需要使用npm
安装两个命令行工具,protractor
和webdriver-manager
,所以默认的“Visual Studio”构建模板不符合您的要求。
您需要通过specifying your build steps自定义您自己的构建模板.例如安装protractor
和webdriver-manager
需要添加npm
步骤,添加Command Line
步骤运行 protractor conf.js
命令。
关于testing - 在 TFS 构建中运行 Protractor 端到端测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36985594/