2016-05-12 3 views
1

Я использую функцию тестирования, управляемую данными, в среде MS test. Атрибут [DataSource] указывает таблицу. Метод C# отмечен как [TestMethod]. Это работает, но иногда мне нужно прекратить выполнение. Например, таблица имеет 100 строк. Как до явно (преждевременно) метод теста выхода (остановить остальные вызовы DDT) после некоторого условия, скажем, при вызове этого метода для 50-й строки?Как явный выход из метода испытаний, управляемого данными, в MSTest

[DataSource("System.Data.SQLite", @"Data Source=D:\Test.db;", "TestTableName", 
    DataAccessMethod.Sequential)] 
    [TestMethod] 
    public void DataTest() 
    { 
     string userId = Convert.ToString(TestContext.DataRow["userid"]); 
     string telephone = Convert.ToString(TestContext.DataRow["telephone"]); 
     string email = Convert.ToString(TestContext.DataRow["email"]); 

     // ..... 

     functionThatPerformsAssert(userId, telephone, email); 
     // ..... 

    } 
+0

Можете ли вы показать код TestMethod пожалуйста? –

+0

Извините - не могу добавить производственный код. добавлен пример. но маловероятный код добавит информацию. – Kaponir

+0

Итак, вы хотите выйти (как в случае прерывания) выполнение теста? Что вы (и MS test) хотите, чтобы результат теста был «прошел или не прошел»? Если вы просто хотите, чтобы он вышел, и не получилось, выбросьте исключение! – Jocke

ответ

1

Я решил это применение Assert.Inconclusive из functionThatPerformsAssert(), где _skipTest определяет, следует ли пропустить текущую строку в данных ведомым испытания и начать следующий ряд:

if (_skipTest) 
      Assert.Inconclusive("Test Skipped"); 
+0

, но когда я пробую это после первой итерации, только мой тестовый пример останавливается ... Я использую это в инициализации теста. – shrot