Как вы получаете номер итерации/строки из TestContext в тестах, управляемых данными?

Я реализовал тест, управляемый данными, с использованием платформы MsTest.

Мне было интересно, есть ли способ получить номер итерации/строки текущего тестового кода из объекта TestContext?

Насколько я вижу, единственным свойством, относящимся к DDT, является DataRow, которое позволяет получать информацию для текущей итерации из источника данных, но я не вижу никакого свойства, которое дает мне то, что мне нужно.


person user1039580    schedule 26.02.2012    source источник


Ответы (2)


Попробуй это:

int currentIteration = TestContext.DataRow.Table.Rows.IndexOf(TestContext.DataRow);
person chaliasos    schedule 26.02.2012
comment
Вы, должно быть, заглянули в Debugger и Inspect, чтобы узнать это. Я не увидел это достаточно скоро. MSDN даже не упоминает этот полезный объект Table. - person The Original Android; 17.10.2017

это без атрибута DataSource, но я могу сказать вам, что он повторяется сам по себе без цикла for

     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);

        }
person Wazzz    schedule 17.11.2013