Maven 中的多个测试集
我已经编写了一个 REST 服务器(在 Java 中使用 RestEasy)以及用 Scala 编写的单元测试套件。该测试套件使用 RestEasy 提供的模拟服务器,并在每个 Maven 构建中运行。
我想创建第二个功能测试套件,它调用实际的 tomcat 服务器并执行每个 REST 服务。我不希望这个新套件在每次构建时都运行,而只是按需运行,也许可以通过 Maven 的命令行参数进行控制。
是否可以在一个 Maven 项目中创建多个独立的测试套件并禁用某些测试套件的自动运行,或者我是否需要为此功能套件创建一个单独的 Maven 项目?如果这些测试与单元测试位于同一项目中(不同的目录),如何隔离不同的功能套件代码?如何使用命令行参数运行选定的套件?
I have written a REST server (in Java using RestEasy) with a unit test suite written in Scala. The test suite uses the mock server provided by RestEasy and runs with every Maven build.
I would like to create a second functional test suite that calls an actual tomcat server and exercises each REST service. I do not want this new suite to run with every build, but only on demand, perhaps controlled with a command line argument to Maven.
Is it possible to create multiple independent test suites in a Maven project and disable some from automatic running, or do I need to create a separate Maven project for this functional suite? How can I segregate the different functional suite code if these tests are in the same project with the unit tests (different directories)? How do I run a selected suite with command line arguments?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我自己从未使用过它,但我知道 Maven Failsafe 插件 < 运行的 Maven 集成测试/a>.
由于 surefire 插件默认包含名为
**/ 的测试Test*.java, **/*Test.java, **/*TestCase.java
故障安全插件运行**/IT*.java, **/*IT.java, ** /*ITCase.java
测试。两种测试方法都有不同的意图,似乎符合您的部分需求。可能值得一看......
另一种方法是使用 maven 配置文件 并指定不同的surefire 包含 对于每个配置文件。
I never used it myself but I am aware of maven integration tests run by the Maven Failsafe plugin.
As the surefire plugin by default includes the tests named
**/Test*.java, **/*Test.java, **/*TestCase.java
the failsafe plugin runs the**/IT*.java, **/*IT.java, **/*ITCase.java
tests.Both test approaches have different intentions which seems to match part of your needs. It might be worth to have a look.....
Another approach would be to use maven profiles and specifiy different surefire includes for each profile.