2015-11-20 5 views
0

Я хотел бы иметь автономный проект, который будет проверять некоторые функции удаленной системы, подключенной через USB.Как запустить тест NUnit?

Так что я хочу использовать всю силу NUnit внутри моего приложения.

В настоящее время я писал:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Web; 
using NUnit.Framework; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.ReadLine(); 
     } 
    } 

    [TestFixture] 
    public class MyTest 
    { 
     [Test] 
     public void MyTest() 
     { 
      int i = 3; 
      Assert.AreEqual(3, i); 
     } 
    } 
} 

Как запустить мой тест-набор, и как я могу получить тест-отчет?

ответ

4

Я знаю два возможных решения для достижения желаемого. Команда NUnit опубликовала NUnit Engine и NUnit Console на nuget.

Использование NUnit Двигатель

using NUnit.Engine; 
using NUnit.Framework; 
using System.Reflection; 
using System.Xml; 
using System; 

public class Program 
{ 
    static void Main(string[] args) 
    { 
     // set up the options 
     string path = Assembly.GetExecutingAssembly().Location; 
     TestPackage package = new TestPackage(path); 
     package.AddSetting("WorkDirectory", Environment.CurrentDirectory); 

     // prepare the engine 
     ITestEngine engine = TestEngineActivator.CreateInstance(); 
     var _filterService = engine.Services.GetService<ITestFilterService>(); 
     ITestFilterBuilder builder = _filterService.GetTestFilterBuilder(); 
     TestFilter emptyFilter = builder.GetFilter(); 

     using (ITestRunner runner = engine.GetRunner(package)) 
     { 
      // execute the tests    
      XmlNode result = runner.Run(null, emptyFilter); 
     } 
    } 

    [TestFixture] 
    public class MyTests 
    { 
     // ... 
    } 
} 

Установите Nuget Engine package из NuGet для того, чтобы запустить этот пример. Результаты будут в переменной result. Существует предупреждение для всех, кто хочет использовать этот пакет:

Он не предназначен для непосредственного использования пользователей, которые просто хотят запустить тестов.

Использование стандартного приложения NUnit консоли

using NUnit.Framework; 
using System.Reflection; 

class Program 
{ 
    static void Main(string[] args) 
    { 
     string path = Assembly.GetExecutingAssembly().Location; 
     NUnit.ConsoleRunner.Program.Main(new[] { path }); 
    } 

    [TestFixture] 
    public class MyTests 
    { 
     // ... 
    } 
} 

Установите NUnit Engine и NUnit Console пакеты из NuGet. Добавьте ссылку на nunit3-console.exe в свой проект. Результаты будут сохранены в файле TestResult.xml. Мне не нравится этот подход, потому что вы можете добиться того же, используя простой командный файл.

Смежные вопросы