使用Spring
Maven上下文,我想基于Maven配置文件运行特定的测试。我想有一种标记测试组的简单方法。如果可能的话,我想使用注释。那里有哪些选项,例如maven命令行参数,maven配置文件规范等。
说我有以下测试:
例:
// annotation("integration")
public class GeopointFormatterTest {
@Test
public void testIntegration1() { ... }
@Test
public void testIntegration2() { ... }
当然,@
Profile(用于创建Bean)和@ActiveProfile(用于选择特定的配置文件以创建Bean)之类的注释不能用于选择测试。所有测试仅针对以下语句运行:
mvn clean install-开发
mvn全新安装-Pdevelopment -Dspring.profiles.active = acceptance
mvn全新安装-Pdevelopment -Dspring.profiles.active = integration
根据建议,我还使用了@IfProfileValue。这是根据系统属性值选择测试的好方法。系统属性值可以由CustomProfileValueSource类覆盖,例如:@ProfileValueSourceConfiguration(CustomProfileValueSource.class)
编辑和替代
下面的伟大答案集中于JUnit的@Category机制。谢谢大家!
通过这些步骤,可以采取另一种方法:[1]在maven配置文件中设置一个属性,[2]使用该属性通过标准surefire测试插件的跳过测试。
[1]通过配置文件设置属性:
<profiles>
<profile>
<id>integrationtests</id>
<properties>
<integration.skip>false</integration.skip>
<acceptance.skip>true</acceptance.skip>
</properties>
</profile>
... other profiles
[2]使用surefire测试插件中的属性跳过测试。
<build>
<plugins>
<plugin>
<!-- Run the integration test-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.plugin.version}</version>
<configuration>
<skipTests>${acceptance.skip}</skipTests>
从Maven开始:mvn全新安装–Pintegrationtests
看一下junit类别。
您可以使用特定的类别注释来标记测试
public interface FastTests { /* category marker */ }
public interface SlowTests { /* category marker */ }
@Category(SlowTests.class)
public class A {
@Test public void a() {}
}
然后形成一个像
@RunWith(Categories.class)
@IncludeCategory({FastTests.class})
@SuiteClasses({A.class, B.class})
public static class FastTestSuite {
//
}
然后用
mvn -Dtest=FastTestSuite test
还要注意,如果您不想在套件类中手动指定单元测试用例类,则还可以使用ClasspathSuite的帮助,然后仅基于类别进行限制。
使用Spring maven上下文,我希望运行基于maven概要文件的特定测试。我想有一个简单的方法标记测试组。如果可能的话,我想使用注释。有哪些选项,如maven命令行参数、maven配置文件规范等。 假设我有以下测试: 示例: 下面的精彩答案集中在JUnit的@Category机制上。感谢大家! 另一种方法是通过以下步骤:[1]在maven配置文件中设置一个属性,[2]使用该属性通过标准sur
我有一些cucumber特性,可以通过IDE运行find功能,但现在我需要通过命令行使用“mvn test”命令来执行它们。 CMD输出如下:
我已经配置了一个配置文件来只运行集成测试,但它仍然在运行所有测试。这是配置: 我试过正则表达式,就像在http://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html但我发现这不管用。我怎样才能让测试以IT.java结束?
我正在通过Maven运行测试用例。使用以下命令: 获取成功: 获取失败: 类名为LoginTest 堆栈跟踪: [错误]无法执行目标org.apache.maven.plugins:maven-surefire-plugin:2.12.4:project Web上的test(default-test):未执行任何测试!(设置-DFAILIFNOTESTS=FALSE忽略此错误。)->[帮助1]or
我想在gradle的项目中运行junit测试,并为sonnar runner存储结果。所有junit测试都位于名为“test”的文件夹中,该文件夹位于项目根目录中。 源集的一部分 Gradle版本-Gradle 1.12 当我运行命令时:。我有这样的东西 在我看来,似乎没有找到测试。Gradle也扫描源集中指定文件夹的子文件夹,对吗?哪里会有问题?如何为sonnar运行器存储测试结果,您更喜欢的方
我正在使用Maven对一个网站运行TestNG集成测试。目前,我可以使用此命令运行特定的测试类: 我还希望能够指定一个TestNG套件XML文件来运行一系列带有特定参数的类。 我可以在我的POM中设置故障安全插件来接受suiteXmlFiles参数,如下所示: 让我发出这个命令: 但现在我不能用-Dit了。test=“MyTestClassname”选项,因为Maven现在试图传递一个空值作为套件