Background:
我的空手道测试用例在空手道 0.9.6 版本上运行良好。
目前我正在尝试将空手道版本升级到 1.4.0 并遇到问题。 Java版本是17。
Solutions Tried:
遵循文档 Karate-1.0-upgrade-guide 并删除了 pom 中的 karate-apache 依赖项并更新了 Runner 方法。在 pom 中添加了 karate-core 依赖项。
运行空手道测试用例时面临以下错误:
ERROR:
com.intuit.karate -- karate.org.apache.http.conn.HttpHostConnectException:连接到 127.0.0.1:8080 [/127.0.0.1] 失败:
连接被拒绝:没有更多信息,http 调用在 474 毫秒后失败,网址:http://127.0.0.1:8080/
karate-config.js
function fn() {
var env = karate.env;
karate.configure('connectTimeout', 5000);
karate.configure('readTimeout', 8000);
var port = karate.properties['demo.server.port'];
var url = karate.properties['demo.server.url'];
if (!port) {
port = karate.env == 'web' ? 8090 : 8080;
}
var protocol = 'http';
if (karate.properties['demo.server.https'] == 'true') {
protocol = 'https';
karate.configure('ssl', true);
}
env = 'test';
var config = {
env: env,
baseUrl: protocol + '://127.0.0.1:' + port,
basePath: '/karateTesting/1.0',
baseHeader: 'classpath:com/karate/headers/',
baseReq: 'classpath:com/karate/requests/',
baseResp: 'classpath:com/karate/responses/'
}
if (url) {
config.baseUrl = url;
}
if (karate.env == 'proxy') {
var proxyPort = karate.properties['demo.proxy.port'];
karate.configure('proxy', 'http://127.0.0.1:' + proxyPort);
}
return config; }
Runner Class
@Test
void testParallel() {
Results results = Runner.path("classpath:com/karate/test_api.feature").tags("~@ignore").parallel(5);
generateReport(results.getReportDir());
assertEquals(0, results.getFailCount(), results.getErrorMessages());
}
POM.xml
<dependency>
<groupId>com.intuit.karate</groupId>
<artifactId>karate-core</artifactId>
<version>1.4.0</version>
<classifier>all</classifier>
<scope>test</scope>
</dependency>
在 Docker 容器中运行测试时,我遇到了同样的错误。在功能文件背景中添加下一行解决了我的问题 *配置驱动程序= { type: 'chrome', start: false, showDriverLog: true, host:'127.0.0.1' }