我刚开始尝试赛普拉斯测试框架。我在Jenkins作业中运行了一个简单的测试,该作业由安装和启动服务器的上游作业启动。它还通过在新启动的服务器上点击URL来运行一些单元测试,因此必须启动服务器才能成功完成并启动cypress测试作业。
由于某种原因,cypress间歇性失败,因为它无法验证基本URL上的服务器是否正在运行。我删除了基本网址配置并使用了cy.visit()
中的完整网址,到目前为止它已成功运行。
有没有人知道赛普拉斯为什么会间歇性地验证基本网址?
这是我用来运行测试的代码。我正在执行Gulp任务:
gulp.task('run-ui-tests', function() {
return cypress.run({
spec: './cypress/integration/main_navigation.js',
config: {
//baseUrl: config.urlProtocol + "://" + config.e2eTestsBaseUrl,
viewportWidth: 1200,
viewportHeight: 660,
videoRecording: false,
toConsole: false
},
reporter: "junit",
reporterOptions: {
mochaFile: "cypress/results/test-output.xml",
toConsole: false,
rootSuiteTitle: "UI Test Suite",
testsuitesTitle: "UI Tests"
}
})
.then((results) => {
if (results.failures === 0) {
console.log(results.passes + " of " + results.tests + " tests passed!")
console.log(results.failures + " tests failed!")
console.log("Ran for " + results.duration);
} else {
throw new Error(results.failures + " UI tests failed!! See /cypress/results/test-output.xml for more details.");
}
})
.catch((err) => {
throw new Error(err)
});
});
答案 0 :(得分:1)
事实证明,我试图运行测试的开发服务器没有DNS条目。我进入了它,从那以后它一直在完美地工作。