如何在maven运行中确定测试用例的优先级?

时间:2012-03-01 06:03:50

标签: maven selenium junit4

我有3个测试用例,即1 2 3.在执行maven命令时,我将如何优先考虑2 1 3。

2 个答案:

答案 0 :(得分:0)

您可以使用选项运行mvn test来指定单个测试或多个测试。它们运行的​​顺序是命令行中指定的顺序。

参考文献:http://maven.apache.org/plugins/maven-surefire-plugin/examples/single-test.html

请注意,Java表明测试的良好单元测试实践不需要按顺序运行并且测试不相互依赖: http://java.sun.com/developer/Books/javaprogramming/ant/ant_chap04.pdf

答案 1 :(得分:0)

我认为你想要这样做,因为在测试可以运行之前需要一些预先考虑。您可以在实际测试用例之前通过@Before Annotation执行此操作,也可以从测试方法中调用其他测试。

说,testClient()测试将测试并验证是否可以将新客户端添加到系统中。然后你可以这样做:

@Test 
public void testWithdrawal(){
 testClient(); // i need client existing before the test can be run
 // ... do something else
}

在这种情况下,您已确保先决条件已满,并且不必担心测试用例订单

修改

我想我理解你的需求,因为我的情况非常相似。我是如何解决的:

对于create,我有一个特殊的类,它可以创建数据并返回所需的数据。所以,我有类似的东西:

@Test
public void testShare(){
CreateTests create = new CreateTests; //This will just initialize the object
create.testCreate(); // this method can contain steps needed to create
String justCreatedEntity = create.getEntity(); // just example how you can use the just created entity in further tests

}

我解决创造的课程就像这样

public class CreateTests{
  private static String entity; //static because i dont want it to be flushed when test ends

 public void testCreate() throws Exception{

    WebDriverBackedSelenium selenium = new WebDriverBackedSelenium(driver, "baseURL");
    selenium.... // All the selenium stuff
     setEntity(selenium.getText("id=mainForm.createdentity"));
 }

 public void setEntity(String ent){
  this.entity = ent;
 }

 public String getEntity(){
  return entity;
 }

它只是一个大纲 - 但基本上,我将这些“关键”实体作为独立对象,由测试类调用。在内部测试中,我验证了所有的东西。像:

Assert.assertNotNull(create.getAuctionID(),"New Entity is NULL!" );