我已关注How to Run Karate API tests on Azure pipelines在 azure 管道上设置 Karate 。
我们需要首先启动应用程序才能运行 Karate 测试。
假设我有一个公开可用的开发 API,并且有一些新的更改需要合并。
在此开发环境上进行测试仍然没有意义,因为新功能的新 Karate 测试用例尚未在开发人员上可用,当然 Karate 测试将会失败。。 p>
如果我们看 example projects他们都排除 Karate 测试文件。排除他们的理由是什么?我们是否应该包含它们,以便在管道期间运行 Karate 测试?
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.1</version> <configuration> <excludes> <exclude>karate/**/*.java</exclude> </excludes> <includes> <include>com/**/*.java</include> </includes> </configuration> </plugin>
最佳答案
您可以在azure中使用maven命令来运行 Karate 测试,因为我正确理解了您的要求。
但是,如果您需要不同的步骤来构建应用程序和运行测试,则需要按顺序在管道中执行两个步骤,例如创建 bash 脚本或类似的内容。也许您可以使用 Makefile 和 make 命令来构建并运行您的测试,例如;
build-and-run:
mvn (run app command) && mvn clean test -Dtest=myRunner
目前,我正在使用 azure devops 运行一些 Karate 测试,但我的测试不需要 make 应用程序,因为它们是针对临时环境运行的。我使用此步骤来运行 Karate 测试:
- task: Maven@3
inputs:
mavenPomFile: 'pom.xml'
goals: 'clean test -Dusername=$(USERNAME) -Dpassword=$(PASSWORD)'
publishJUnitResults: true
testResultsFiles: '**/surefire-reports/TEST-*.xml'
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.8'
mavenVersionOption: 'Default'
mavenOptions: '-Xmx3072m'
mavenAuthenticateFeed: false
effectivePomSkip: false
sonarQubeRunAnalysis: false
这是由 azure devops 自动生成的,我只是输入了我的运行命令
关于spring - Karate如何在Azure管道中启动应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71169372/