2012-03-01 3 views
0

3 가지 테스트 케이스가 있습니다. 1 2 3. maven 명령을 실행하는 동안 어떻게 우선 순위를 2 1 3으로 할 것입니까?Maven에서 실행 된 테스트 케이스를 사전 정렬하는 방법은 무엇입니까?

+2

왜 그렇게하고 싶습니까? –

+0

세 가지 테스트 케이스가 있습니다. 작성, 삭제 및 공유가 모두 같은 요소에서 작동합니다. 생성하기 전에 삭제를 실행하면 삭제할 것이 없습니다. 그래서 나는 이런 방식으로 주문해야합니다 : 을 생성하고, 을 공유하고 마지막으로 삭제하십시오. –

+0

그것은 바보 같아요.하지만 테스트 클래스의 테스트 케이스를 순서를 바꾸면 원하는대로 작동합니다 :) – faramka

답변

0

을 당신을 생각 테스트를 실행하기 전에 사전 검사가 필요하기 때문에 테스트를 수행하고 싶습니다. 실제 테스트 케이스보다 먼저 @Before Annotation을 사용하거나 테스트 메소드에서 다른 테스트를 호출 할 수 있습니다.

시험, testClient() 시험은 새로운 클라이언트를 시스템에 추가 할 수 있는지 테스트하고 확인합니다. 그럼 당신이 수행 할 수 있습니다을 testcases 주문에 대해 많이 걱정해야 당신이 전제 조건이 fullfilled 것을 확신 한 경우에

@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!"); 
+0

Pavel, JUnit 아니요 setUp() 및 teardown()이 전제 조건입니다. 내 문제는 경쟁 조건입니다. 좀 더 명확하게하려고합니다. 세 가지 개별 단위 테스트가 있습니다. 동일한 데이터 세트에서 삭제 및 공유 작업을 만듭니다. 즉, Create를 사용하여 만드는 작업은 공유 및 삭제를 사용하여 공유 및 삭제됩니다.따라서 Create-> Delete-> Share를 호출하면 공유 할 것이 없습니다. 그래서 나는 Create-> Share-> Delete와 같은 순서를 설정할 필요가있다. 나는 지금 그것이 분명하다고 생각한다. 당신의 도움을 주셔서 감사합니다. –

+0

수정 된 답변, 도움이 되길 바랍니다. –

+0

감사합니다. Pavel, 제 질문은 실제로 명령 수준이었습니다. ** mvn -Dtest = 작성, 공유, 테스트 삭제 **와 같이 입력하십시오. 이 명령을 받아야합니다. –

0

옵션을 사용하여 mvn test를 실행하여 단일 테스트 또는 여러 테스트를 지정할 수 있습니다. 명령이 실행되는 순서는 명령 행에 지정된 순서입니다.

참조가 여기에 있습니다 : 자바를 필요로하지 않는 시험의 좋은 단위 테스트 연습이 서로에 의존하지 않도록하기 위해 테스트에서 실행하는 것을 제안하는 것이 http://maven.apache.org/plugins/maven-surefire-plugin/examples/single-test.html

참고 : http://java.sun.com/developer/Books/javaprogramming/ant/ant_chap04.pdf

+0

-Dtest 명령을 사용했지만 작동하지 않았습니다. 나는 잘못된 명령을 내렸을지도 모른다. 감사. –

관련 문제