Unable to find testhost.dll. Please publish your test project and retry

匿名 (未验证) 提交于 2019-12-03 01:34:02

问题:

I have a simple dotnet core class library with a single XUnit test method:

TestLib.csproj: <Project Sdk="Microsoft.NET.Sdk">    <PropertyGroup>     <TargetFramework>netstandard2.0</TargetFramework>   </PropertyGroup>    <ItemGroup>     <PackageReference Include="Microsoft.NET.Test.SDK" Version="15.9.0" />     <PackageReference Include="xunit" Version="2.4.1" />     <PackageReference Include="xunit.runner.console" Version="2.4.1">       <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>       <PrivateAssets>all</PrivateAssets>     </PackageReference>     <PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">       <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>       <PrivateAssets>all</PrivateAssets>     </PackageReference>     <PackageReference Include="xunit.runners" Version="2.0.0" />   </ItemGroup>  </Project>  BasicTest.cs: using Xunit;  namespace TestLib {     public class BasicTest     {         [Fact(DisplayName = "Basic unit test")]         [Trait("Category", "unit")]         public void TestStringHelper()         {             var sut = "sut";             var verify = "sut";              Assert.Equal(sut, verify);         }     } } 

If I enter the project on the CLI and type dotnet build the project builds. If I type dotnet test I get this:

C:\git\Testing\TestLib> dotnet test C:\git\Testing\TestLib\TestLib.csproj : warning NU1701: Package 'xunit.runner.visualstudio 2.4.1' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETStandard,Version=v2.0'. This package may not be fully compatible with your project. Build started, please wait... C:\git\Testing\TestLib\TestLib.csproj : warning NU1701: Package 'xunit.runner.visualstudio 2.4.1' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETStandard,Version=v2.0'. This package may not be fully compatible with your project. Build completed.  Test run for C:\git\Testing\TestLib\bin\Debug\netstandard2.0\TestLib.dll(.NETStandard,Version=v2.0) Microsoft (R) Test Execution Command Line Tool Version 16.0.0-preview-20181205-02 Copyright (c) Microsoft Corporation.  All rights reserved.  Starting test execution, please wait... Unable to find C:\git\Testing\TestLib\bin\Debug\netstandard2.0\testhost.dll. Please publish your test project and retry.  Test Run Aborted. 

What do I need to change to get the test to run?

If it helps, VS Code is not displaying the tests in its test explorer, either.

回答1:

Installing Microsoft.NET.Test.Sdk package from nuget package manager solved my issue.



回答2:

I had created a class library and tried to use the XUnit NuGet package in it.

What I should have done was created an XUnit project using this command: dotnet new xunit -n TestProject

I found this helpful page.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!