데이터 기반 테스트에서 TestContext에서 반복 / 줄 번호를 어떻게 얻을 수 있습니까?

StackOverflow https://stackoverflow.com/questions/9454904

  •  13-11-2019
  •  | 
  •  

문제

MSTEST 프레임 워크를 사용하여 데이터 기반 테스트를 구현했습니다.

TestContext 객체에서 현재 테스트 코드의 반복 / 라인 번호를 얻는 방법이 있는지 궁금해하고 있었습니까?

내가 볼 수있는 한 DDT와 관련된 유일한 속성은 데이터 소스의 현재 반복에 대한 정보를 얻을 수있게 해주는 DataRow이지만 필요한 것을 제공하는 속성은 보이지 않습니다.

도움이 되었습니까?

해결책

시도 :

int currentIteration = TestContext.DataRow.Table.Rows.IndexOf(TestContext.DataRow);
.

다른 팁

private readonly PropertyInfo _rowIdProp = typeof(System.Data.DataRow).GetProperty("rowID", BindingFlags.NonPublic | BindingFlags.GetProperty | BindingFlags.Instance);

..

// No datarow means only one iteraton

var currentIteration = DataRow == null ? 1 : (Int64)_rowIdProp.GetValue(DataRow, null);
.

이것은 DataSource 속성이 없지만 for 루프없이 It Self에 의해 반복된다는 것을 알려 드릴 수 있습니다

     for (int i = 0; i < x; i++)
        {
             int currentIteration = TestContext.DataRow.Table.Rows.IndexOf(TestContext.DataRow);
             DataTable dt = TestContext.DataRow.Table;
             int rowCount = dt.Rows.Count;

             DataRow secondRow = dt.Rows[i];
             string name = secondRow["name"].ToString();
             int Balance = Convert.ToInt32(secondRow["Balance"]);
             int Amount = Convert.ToInt32(secondRow["Amount"]);
             int Count = Convert.ToInt32(secondRow["Count"]);
             Assert.AreEqual(Balance, Amount);

        }
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top