我正在将我在NuGet上拥有的一个小型库移植到.NET Core。
我为主项目和测试创建了.NET Standard 1.6类库,并复制了代码。我将单元测试更改为使用xUnit属性和断言而不是NUnit。
除此之外,我基本上遵循了文档中的说明,因此我添加了以下NuGet包:
我为主项目和测试创建了.NET Standard 1.6类库,并复制了代码。我将单元测试更改为使用xUnit属性和断言而不是NUnit。
除此之外,我基本上遵循了文档中的说明,因此我添加了以下NuGet包:
- Microsoft.NET.Test.Sdk
- xunit
- xunit.runner.visualstudio
哎呀,(1)测试资源管理器无法找到我的单元测试,而且(2)当我运行dotnet test
时,出现以下情况:
开始测试执行,请稍候... 找不到源“[...].Tests.dll”的testhost.dll。确保测试项目具有nuget引用包“microsoft.testplatform.testhost”。
实际上,我已经添加了建议的Microsoft.TestPlatform.TestHost
NuGet包,但这并没有改变任何事情。
那么问题在哪里呢?
我正在使用Visual Studio 2017。虽然我不认为这会有什么区别。
更新:将测试项目从类库(.NET Standard)
更改为类库(.NET Core)
解决了问题。我仍然不明白这应该有什么区别。
Microsoft.NET.Test.Sdk
在构建 .net core 时将项目从类库转换为控制台应用程序,以生成所有需要“运行”的资产。 - Martin Ullrichnetcoreapp
、net
、uap
、win
、wpa
和wp
中的任意一个。 - Shaun Luttin