Nunit: Не удалось загрузить файл или сборку nunit.framework

Созданный на 14 февр. 2018  ·  12Комментарии  ·  Источник: nunit/nunit

Здравствуйте, я создал новый проект с dotnet nunit и я получаю эту ошибку, когда пытаюсь выполнить свои тесты через Unit.ConsoleRunner.3.8.0.

Dotnet SDK версии 2.1.4

Образец репозитория с ошибкой: https://github.com/VictorioBerra/nunit3-errors

Запустите ./build.ps1, чтобы запустить файл торта. Как только вы это сделаете, он загрузит Unit.ConsoleRunner.3.8.0 из NuGet. Поэтому после того, как вы запустите это или загрузите пакет nuget, вы можете пропустить бизнес с тортом и просто запустить его в PowerShell, если хотите:

.\tools\NUnit.ConsoleRunner.3.8.0\tools\nunit3-console.exe .\tests\Demo.Tests\bin\Release\netcoreapp2.0\Demo.Tests.dll

question

Самый полезный комментарий

Я согласен, кстати, что жаль, что у нас еще нет полнофункциональной NUnit.Console на .NET Core 2.0. Как только я закончу свои текущие PR, я пойду туда, если меня никто не опередит.

Все 12 Комментарий

Это связано с тем, что, в отличие от проектов .NET Framework, в проектах .NET Core не копируются зависимости, такие как nunit.framework.dll, в папку bin\{configuration}\{tfm} при сборке. Вам нужно запустить dotnet publish . Для Cake это DotNetCorePublish или посмотрите, что делает NUnit . Затем вы запускаете тесты сборок в bin\{configuration}\{tfm}\publish которые действительно содержат зависимости.

dotnet test выполняет всю эту публикацию за вас, прежде чем передать путь \publish к dotnet vstest .
И dotnet vstest и консоль NUnit работают со сборками, а не с проектами, и поэтому требуют, чтобы вы сначала опубликовали их, как если бы вы писали самоисполняющиеся тесты.

Аааааааааааааааааааааааааааааааааааааааааааааааааааа в), огромное вам спасибо. Если вы посмотрите на пример на торт, они четко показывают переход в каталог bin для выполнения тестов: https://cakebuild.net/api/Cake.Common.Tools.NUnit/NUnit3Aliases/5A473496

Надеюсь, любой, кто столкнется с этим, увидит это и сэкономит время.

Прежде чем я перейду слишком быстро: NUnit.ConsoleRunner еще не работает в .NET Core. NUnitLite работает, хотя это самый простой способ запустить тесты NUnit: https://github.com/nunit/docs/wiki/.NET-Core-and-.NET-Standard

Пример: https://github.com/jnm2/ApiContractGenerator/blob/aa3c085fdb9c978b252b630187325d6eeb504235/build.cake#L21 -L25

@ jnm2 дает ли ваш пример результаты тестирования? Из вики, которую вы разместили:

dotnet test в настоящее время не поддерживает передачу параметров командной строки в тестовый адаптер, поэтому NUnit пока не может создавать TestResults.xml.

В последний раз я смотрел так:

https://github.com/jnm2/Cake.SqlServer/blob/ed6093e268114ef640851414e64aabec49d284e8/build.cake#L114 -L134

try
{
    DotNetCoreTest("src/Tests/Tests.csproj", new DotNetCoreTestSettings
    {
        Configuration = configuration,
        NoBuild = true,
        Logger = "trx",
        ArgumentCustomization = a => a.AppendSwitchQuoted("--results-directory", tempDirectory)
    });
}
finally
{
    if (parameters.IsRunningOnAppVeyor)
    {
        // dotnet test cannot do more than one target framework per TRX file
        // AppVeyor seems to ignore all but the first TRX upload– perhaps because the test names are identical
        // https://github.com/Microsoft/vstest/issues/880#issuecomment-341912021
        foreach (var testResultsFile in GetFiles(tempDirectory + "/**/*.trx"))
            AppVeyor.UploadTestResults(testResultsFile, AppVeyorTestResultsType.MSTest);
    }
}

Я согласен, кстати, что жаль, что у нас еще нет полнофункциональной NUnit.Console на .NET Core 2.0. Как только я закончу свои текущие PR, я пойду туда, если меня никто не опередит.

Привет, есть новости по этому поводу?

https://github.com/nunit/nunit-console/issues/475 - тема, которой нужно следовать.

@orihomie Это закрытый вопрос. Мы собираемся спросить о другом?

@CharliePoole Нет, я только что столкнулся с этой проблемой в моем плане сборки, когда пытался запустить тесты .netcore с помощью * \ NUnit.Console-3.6.1 \ nunit3-console.exe, и получил исключение, которое привело меня прямо сюда

@orihomie Вы пока не можете использовать консоль для .NET Core, но можете использовать dotnet test .

https://github.com/nunit/docs/wiki/.NET-Core-and-.NET-Standard
https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-nunit

@orihomie Чтобы

Была ли эта страница полезной?
0 / 5 - 0 рейтинги