【发布时间】:2016-12-01 19:12:36
【问题描述】:
试图获取问题中所有好的关键字。基本上我有一些硒测试,使用 JUnit4/Maven 并创建了一个自定义注释来用一些基本信息标记每个测试:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface TestInfo {
public enum Priority { LOW, MEDIUM, HIGH }
Priority priority() default Priority.LOW;
String useCase() default "";
String createdBy() default "unknown";
String lastModified() default "unknown";
}
所以每个测试看起来像这样:
@Test
@TestInfo(priority = TestInfo.Priority.HIGH,
createdBy = "MivaScott",
lastModified = "2016/11/29",
useCase = "Log into website with valid credentials")
public void loginValidCredentials() throws Exception {
Properties user = Data.getUserCredentials("default");
loginPage.setLogin(user.getProperty("username"));
loginPage.setPassword(user.getProperty("password"));
loginPage.clickSignInButtonAndWait();
Verify.titleContains(MyConstants.TITLE_DASHBOARD, "");
}
我希望我可以在命令上指定只运行标记为高优先级的测试。大意是这样的:
mvn -DTestInfo.priority=HIGH test
这是可能的,还是类似的?
【问题讨论】:
-
你在用junit4吗?如果是这样,您应该查看类别。根据开箱即用的注释解决您对运行测试的要求。 github.com/junit-team/junit4/wiki/categories
-
@Grasshopper,我在寻找答案时看到了类别(尚未研究它们的工作原理)。我真的希望不必添加另一个注释/要记住的东西。我正在为非编码人员开发这个框架,所以移动部件越少越好。但是,是的,这是后备选项。