Я хотел бы использовать NUnit для запуска модульных тестов в моем подключаемом модуле, но его нужно запускать в контексте моего приложения. Чтобы решить эту проблему, я пытался разработать плагин, который запускает NUnit, который, в свою очередь, будет выполнять мои тесты в контексте приложения.
Я не нашел конкретной документации по этому вопросу, поэтому я вырыл часть информации здесь и там, и я вышел со следующим фрагментом кода (который похож на тот, который я нашел здесь в StackOverflow):
public static void Main()
{
SimpleTestRunner runner = new SimpleTestRunner();
TestPackage package = new TestPackage( "Test" );
string loc = Assembly.GetExecutingAssembly().Location
package.Assemblies.Add( loc );
if( runner.Load(package) )
{
TestResult result = runner.Run( new NullListener() );
}
}
В переменной результата указано, что "нет TestFixture", хотя я точно знаю, что он есть. На самом деле мой тестовый файл содержит два теста.
Используя другой подход, который я нашел, который суммируется следующим кодом:
TestSuiteBuilder builder = new TestSuiteBuilder();
TestSuite testSuite = builder.Build( package );
// Run tests
TestResult result = testSuite.Run( new NullListener(), NUnit.Core.TestFilter.Empty );
Я видел структуры данных nunit только с одним тестом, и у меня была такая же ошибка.
Для полноты я использую последнюю версию nunit, которая составляет 2.5.5.10112.
Кто-нибудь знает, что мне не хватает? Примерный код будет оценен. Мой тестовый класс:
[TestFixture]
public class UnitTests
{
public UnitTests()
{
}
[Test]
public void TestEqual()
{
long a = 10;
long b = 10;
Assert.AreEqual( a, b );
}
[Test]
public void TestNotEqual()
{
long a = 10;
long b = 11;
Assert.AreNotEqual( a, b );
}
}