데이터 기반 테스트에서 TestContext에서 반복 / 줄 번호를 어떻게 얻을 수 있습니까?
-
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);
}
. 제휴하지 않습니다 StackOverflow