Я добавляю автоматизацию тестов единства с помощью NUnit, чтобы протестировать существующие домашние приложения на C #, которые использует моя компания.Если я использую два теста, только один из них будет видим и запущен.
Я использую Visual Studio 2019 Professional и NUnit v3.11.0 с Nunit3TestAdapter v3.13.0.
Я создал два класса, которыереализовать IEnumerator, а также два метода, которые используют данные из моих тестовых файлов, простые .csv, определенные в вышеупомянутых классах.
// Test 1 - success (ok dates)
public class DonneesTestOK : IEnumerable
{
public IEnumerator GetEnumerator()
{
var reader = new StreamReader(File.OpenRead(
@"C:\GIT_Repo\ndm1001\TestSucces.csv"));
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values = line.Split(',');
string psDatesDebut = values[0];
yield return new string[] { psDatesDebut };
}
}
}
// Test 2 - fail (bad dates)
public class DonneesTestPasOK : IEnumerable
{
public IEnumerator GetEnumerator()
{
var reader = new StreamReader(File.OpenRead(
@"C:\GIT_Repo\ndm1001\TestEchec.csv"));
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values = line.Split(',');
string psDatesDebut = values[0];
yield return new string[] { psDatesDebut };
}
}
}
Я также создал два метода для тестирования основного приложения с соответствующими данными.файлы.
[TestFixture]
public class TestNUnit
{
// test 1 - succes (ok dates)
[TestCaseSource(typeof(DonneesTestOK))]
public void TestNDM1001OK(string[] psDatesDebut)
{
int intCodeRetour = 0x00;
int expected = intCodeRetour;
Assert.That(Program.Main(psDatesDebut), Is.EqualTo(expected));
}
// test 2 - echec (bad dates)
[TestCaseSource(typeof(DonneesTestPasOK))]
public void TestNDM1001PasOK(string[] psDatesDebut)
{
int expected = 8;
Assert.That(Program.Main(psDatesDebut), Is.EqualTo(expected));
}
}
Только TestNDM1001OK , отображается и запускается.
Основное объявление метода выглядит следующим образом:
class Program
{
public static int Main(string[] args)
...
}
Как и в тестахв других приложениях код должен тестировать основное приложение и генерировать выходной файл с правильными данными.Я тестирую приложение с серией дат из .csv, и приложение генерирует несколько выходных файлов.
ИСПРАВЛЕНО:
ОК, это ошибка новичка.Я сравнил свою среду VS2017, в которой оба теста работали, и VS2019, где один не работал.
Помимо параметров «Выполнить все» и «Выполнить ...» в Test Explorer в VS2019, я также заметил «Список воспроизведения»раздел, в котором был выбран плейлист под названием «PasOK».Я удивился, почему это произошло, и вспомнил, что в пятницу я создал два плейлиста, но не помню, чтобы выбирал какой-либо из них.В VS2017 ничего не было выбрано и все работало нормально.Итак, я изменил выпадающий список «Плейлист« Все тесты »в VS2019, и теперь он работает.