2012-03-20 2 views
0

Я работаю с teamcity и переношу некоторые старые тесты интеграции на него. Эти старые интеграционные тесты просто регистрировали результаты в виде консольного приложения. Я бы остался с просто протоколированием результатов, но команда teamcity имеет приятную поддержку NUnit и хотела бы воспользоваться ею.NUnit .NET create tests

Допустим, это был один из моих старых тестов

public void Test() 
    { 
     int tries = 10; 
     int fails = Check(tries); 

     Console.WriteLine("{0} fails out of {1} attempts", fails, tries); // log results 
    } 

    public int Check (int tries) 
    { 
     int fails = 0; 
     for (int i = 0; i < tries; i++) 
     { 
      if (i % 2 == 1) fails++; 
     } 
     return fails; 
    } 

Я не знаю, как сделать это с помощью NUnit или, если это вообще возможно. Я хочу, чтобы каждый звонок Check был его собственным тестом. И нет, блокируя 10 тестов для вызова Check (n) n = 0, ... n = 9 не то, что я ищу.

Заранее спасибо.

ответ

2

Вы можете использовать NNnit's data-driven tests.

[TestCase(10, Result = 5)] 
public int Check (int tries) 
    { 
    int fails = 0; 
    for (int i = 0; i < tries; i++) 
    { 
     if (i % 2 == 1) fails++; 
    } 
    return fails; 
} 
0

Я в конечном итоге происходит с атрибутом диапазона

[Test] 
public int Check ([Range(0,100,1)] int tries) 
{ 
    for (int i = 0; i < tries; i++) 
    { 
     if (i % 2 == 1) Assert.Fail("failed on :" + i); 
    } 
} 
Смежные вопросы