Я пытаюсь запустить тест с помощью NUnitEngine. Но это дает мне FileNotFoundException: не удалось загрузить файл или сборку. Как это исправить? - PullRequest
2 голосов
/ 27 мая 2020

Я читаю набор тестов из тестового dll-файла NUnit. Я читаю его с помощью System.Reflection. Затем я пытаюсь запустить тест внутри этой dll с помощью NUnitEngine.

Но при выполнении "runner.Run" NUnitEngine выдает следующее исключение FileNotFoundException: Не удалось загрузить файл или сборку.

Я проверил путь. Это правильно. Кто-нибудь может сказать, в чем может быть проблема? Мой код написан в C#. Я использую. NET Core 3.1

Это мой код:

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

namespace MyNameSpace
{
  public class MyClass
  {

    public void RunTest()
    {
         // set up the options
         string path 
     ="C:/Practice_Code/NUnitTestDemo/bin/Debug/netcoreapp3.1/NUnitTestDemo.dll";

        TestPackage package = new TestPackage(path);

        // 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); //this line throws the exception
         System.Console.WriteLine("Test Result:");
         System.Console.WriteLine("----------------------------");
         System.Console.WriteLine(result.InnerXml.ToString());
      }
   }//METHOD RunTest ENDS

  }//CLASS MyClass ENDS

}//NAME-SPACE MyNameSpace ENDS

Вот подробности исключения:

NUnit.Engine.NUnitEngineException: 'Исключение произошла в драйвере при загрузке тестов. '

Внутреннее исключение FileNotFoundException: не удалось загрузить файл или сборку' NUnitTestDemo, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null '. Система не может найти указанный файл.

1 Ответ

1 голос
/ 27 мая 2020

Я думаю, вы столкнетесь с https://github.com/nunit/nunit-console/issues/710.

. NET Базовая сборка NUnit Engine в настоящее время работает, только если она находится в том же каталоге, что и тесты. . В качестве обходного пути попробуйте скопировать тестовую сборку и ее зависимости в тот же каталог, что и ваша программа для выполнения тестов.

Это то, что мы надеемся исправить в следующей версии NUnit.

Дополнение : исправлено с 3.12.0-beta1 (https://www.nuget.org/packages/NUnit.Engine/3.12.0-beta1)

...