2017-01-25 3 views
0

Visual Studio에서 몇 가지 테스트를 자동화하고 있습니다. 그러나 서로 다른 테스트 방법은 서로 의존적이므로 항상 순차적으로 실행해야합니다. 데이터 구동 방식의 테스트 방법을 사용하지 않는 한 이것은별로 문제가되지 않습니다. ROW1 Visual Studio - Visual Studio에서 순차적으로 datadriven 테스트를 실행합니다.

  • DothisSecond - - ROW1
  • DoThisFirst을

    • DoThisFirst :

      [DataTestMethod] 
      [Datarow("Row1")] 
      [Datarow("Row2")] 
      public void DoThisFirst(){ 
      //test execution 
      } 
      
      [DataTestMethod] 
      [Datarow("Row1")] 
      [Datarow("Row2")] 
      public void DoThisSecond(){ 
      //test execution 
      } 
      

      나는 테스트는 다음과 같은 순서로 실행하려는 : 여기

      내가 달성하기 위해 노력하고있어입니다 - Row2
    • DoThisSecond - Row2

    대신에 첫 번째 방법의 모든 반복을 서로 실행 한 다음 두 번째 방법의 모든 반복을 실행합니다.

    나는 이미 이러한 메서드가 정렬 된 테스트에 표시되지 않는 것을 알고 있으므로 대신 재생 목록 파일을 사용하고 있습니다. 그러나 메소드가 실행되는 순서 이외의 것을 지정하는 방법이없는 것 같습니다.

    아이디어가 있습니까?

  • 답변

    1

    원하는 것을 달성하는 한 가지 방법은 다음과 같습니다.

    다른 두 개를 호출하는 데이터 기반 테스트 메소드가 하나 있습니다. 데이터 파일에 새 열을 추가하여 실행할 테스트를 지정하십시오. 데이터 파일의 각 행을 복제하고 각 행에 두 개의 테스트 스펙을 추가하십시오. 개요의 코드는 다음과 같습니다

    [TestMethod] 
    public void TheTest() 
    { 
        switch (DataSource["TestToRun"]) 
        { 
         case "DoThisFirst" : DoThisFirst(); break; 
         case "DoThisSecond" : DoThisSecond(); break; 
         default: Assert.Fail("Unknown test."); break; 
        } 
    } 
    

    테스트 데이터를 CSV로, 수 있습니다 : 데이터 행을 성가신 복제

    TestToRun,UserName,Password,Etc1,Etc2 
    DoThisFirst,Row1User,Row1Passowrd,Row1Etc1,Row1Etc1 
    DoThisSecond,Row1User,Row1Passowrd,Row1Etc1,Row1Etc1 
    DoThisFirst,Row2User,Row2Passowrd,Row2Etc1,Row2Etc1 
    DoThisSecond,Row2User,Row2Passowrd,Row2Etc1,Row2Etc1 
    

    하지만 TheTest이 수정 된 경우 단지 DoThisFirst()는 다음에 호출 DoThisSecond()이면 DoThisFirst()이 실패하면 DoThisSecond()이 호출되지 않습니다. 그러나 두 개의 테스트가 순서대로 실행되어야하므로 DoThisSecond()DoThisFirst()이 실패하는 경우 실행하는 것이 바람직하지 않을 수 있습니다.

    +0

    정확히 이것을 사용하지는 못했지만 확실히 올바른 경로에 나를 넣었습니다. 서로에 따라 여러 가지 testmethods al을 갖는 대신 하나의 DataTest 메서드를 호출하여 일반적인 메서드를 호출하고 반환을 선언했습니다. 그러면 동일한 코드 중 일부를 다시 사용하는 새로운 테스트 사례를 만드는 것이 더 쉬워집니다. 고마워! –

    관련 문제