angular - Jenkins - Jasmine 记者不会为量角器 E2E 测试生成报告
问题描述
我想在 jenkins 上进行测试并通过 Jasmine 记者生成报告。控制台显示成功,但没有生成报告。
我试图手动创建一个文件夹,但没有什么新东西。我尝试使用我的本地 protractor.conf.js 配置,它有效,但它没有给出报告,这就是我正在寻找如何生成它们的原因。
包.json
"name": "chapter-11-code",
"version": "1.0.0",
"repository": {
"type": "git",
"url": "git+https://github.com/wasshj/testingangularendtoend.git"
},
"scripts": {
"e2e": "protractor",
"lint": "tslint",
"webdriver-circle": "webdriver-manager update --standalone false --gecko false --versions.chrome=2.40",
"webdriver-update": "webdriver-manager update --gecko false",
"tsc": "tsc"
},
"author": "Craig Nishina <craig.nishina@gmail.com>",
"license": "MIT",
"devDependencies": {
"@types/jasmine": "2.5.41",
"@types/jasminewd2": "2.0.2",
"@types/selenium-webdriver": "3.0.4",
"jasmine-core": "2.4.1",
"jasmine-reporters": "2.2.1",
"jasmine-spec-reporter": "4.2.1",
"protractor": "5.1.1",
"selenium-webdriver": "3.0.1",
"ts-node": "1.3.0",
"typescript": "2.2.2"
}
}
量角器.conf.js
const { SpecReporter } = require('jasmine-spec-reporter');
exports.config = {
allScriptsTimeout: 11000,
specs: [
'e2e/**/*.e2e-spec.ts'
],
capabilities: {
browserName: 'chrome',
chromeOptions: {
args: (process.env.IS_CIRCLE ? ['--headless'] : [])
}
},
directConnect: !process.env.IS_JENKINS,
baseUrl: 'https://testing-angular-applications.github.io',
// Jasmine
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
print: function() {}
},
onPrepare: ()=> {
if (process.env.IS_JENKINS) {
let jasmineReporters = require('jasmine-reporters');
let junitReporter = new jasmineReporters.JUnitXmlReporter({
savePath: 'output/',
consolidateAll: false
});
jasmine.getEnv().addReporter(junitReporter);
} else {
let specReporter = new SpecReporter({
spec: { displayStacktrace: true }
});
jasmine.getEnv().addReporter(specReporter);
}
require('ts-node').register({
project: 'e2e/tsconfig.json'
});
}
};
脚本(在 Jenkins 上)
export IS_JENKINS=true
npm install
npm run webdriver-update
结果
+ npm run webdriver-update
> chapter-11-code@1.0.0 webdriver-update /var/lib/jenkins/workspace/pjk11
> webdriver-manager update --gecko false
....
[12:03:41] I/file_manager - creating folder /var/lib/jenkins/workspace/pjk11/node_modules/protractor/node_modules/webdrive...
Xvfb stopping
Finished: SUCCESS
我遵循了角度测试书的每一步,但没有生成报告。
解决方案
已解决,我必须将directConnect设置为 true。
还有一点,有时您必须手动创建目录。
量角器.conf.js
exports.config = {
directConnect: true ,
capabilities: {
browserName: 'chrome',
chromeOptions: {
args: (['--headless'])
}
},
baseUrl: 'https://testing-angular-applications.github.io',
specs: ['e2e/**/*.e2e-spec.ts'],
onPrepare: () => {
let jasmineReporters = require('jasmine-reporters');
let junitReporter = new jasmineReporters.JUnitXmlReporter({
savePath: 'output/',
consolidateAll: false
});
jasmine.getEnv().addReporter(junitReporter);
require('ts-node').register({
project: 'e2e'
});
},
};
推荐阅读
- node.js - 无法将 nodejs 部署到 azure
- reactjs - 将 `console.log` 添加到所有 `useEffect`
- go - Go 例程后关闭冗余 sql.Rows 对象的推荐方法
- python - 是否可以使用 requests 模块从 Reverso Context 获取带有单词翻译的例句?
- javascript - JS - 强制打印死键
- powershell - 按数字动态分组对象Powershell
- javascript - 防止使用解构时出现属性未定义错误
- c# - C# 控制台应用程序 - 删除列表中以字符串开头的行
- winapi - 如何从文件句柄到客户端获取 Windows 管道服务器端的主机名?
- scala - 比较两个火花数据框列并检查另一个数据框中列中的每个字符串以生成新列