当我在命令行上运行空手道集成测试时,我试图从命令行传递一个URL。我看了this并尝试做同样的事情,但到目前为止还没有运气。
我有这个{
"error": {
"code": "20111",
"message": "OData Feature not implemented. {0}.",
"innerError": {
"request-id": "0d737ff3-ab68-4284-83b2-91a69216ebe7",
"date": "2018-05-23T12:56:21"
}
}
}
文件
karate-config.js
我像这样使用gradle运行测试
function karateconf() {
karate.configure('connectTimeout', 5000);
karate.configure('readTimeout', 5000);
var config = { baseURL: 'http://localhost:8080' };
if (karate.env == 'ci') {
config.baseURL = karate.properties['base.URL'];
karate.log('*******************************', karate.properties['base.URL']);
}
return config;
}
这是空手道日志
./gradlew integrationTest -Dkarate.env=ci -Dbase.URL=http://someurl:8080
我无法弄清楚我在这里缺少什么。
答案 0 :(得分:1)
Gradle?文档中提及了这一点:https://github.com/intuit/karate#command-line - 看起来您需要将base.URL
添加到您的gradle构建文件中,方法如下:
对于gradle,您必须扩展测试任务以允许cucumber.options 要传递给Cucumber-JVM(否则它们会被消耗掉 gradle本身)。为此,请添加以下内容:
test {
// pull cucumber options into the cucumber jvm
systemProperty "cucumber.options", System.properties.getProperty("cucumber.options")
// pull karate options into the jvm
systemProperty "karate.env", System.properties.getProperty("karate.env")
// ensure tests are always run
outputs.upToDateWhen { false }
}