dotnet new xunit
- >
dotnet restore
- >
dotnet test
总测试:1。通过:1。失败:0。跳过:0。 测试运行成功。 测试执行时间:1,7148秒。
的.csproj;将目标框架更改为net461:
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
<PackageReference Include="xunit" Version="2.2.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
</ItemGroup>
</Project>
然后
dotnet restore
- &gt;
dotnet test
Starting test execution, please wait...
No test is available in C:\Projects\testing\bin\Debug\net461\testing.dll. Make sure that installed test discoverers & executors, platform & framework version sett
ings are appropriate and try again.
我应该如何使用xunit测试net461项目? 我已经有一个从.NET Core 1.0升级的大项目,并且在升级之前测试工作正常,因此更改测试框架需要一些工作。
更新
事实证明,这可能与xunit和测试无关 - 针对net461的ASP.NET核心项目不再在我的机器上运行,无论是通过VS还是从cmd。
我正在尝试运行的项目是VS模板中的一个新的空Web项目。 csproj看起来像这样:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
<RuntimeIdentifier>win7-x86</RuntimeIdentifier>
</PropertyGroup>
<ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" />
</ItemGroup>
</Project>
我得到的错误是:
dotnet run
Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.AspNetCore.Hosting, Version=1.1.1.0, Culture=neutral, PublicKeyTo
ken=adb9793829ddae60' or one of its dependencies. The system cannot find the file specified.
at WebApplication2.Program.Main(String[] args)
我已尝试从我的计算机中删除所有Visual Studio和.NET Core的痕迹并重新安装它们,但错误是相同的。
答案 0 :(得分:1)
运行时标识符推断存在问题以及测试sdk的工作原理。
尝试将此添加到<PropertyGroup>
(假设您使用的是64位窗口):
<RuntimeIdentifier>win7-x64</RuntimeIdentifier>
你也可以添加
<OutputType>Exe</OutputType>
会将您的类库项目转换为exe,但这应该可以解决问题。
答案 1 :(得分:0)
是的,我经历过同样的问题。不确定Microsoft是否已经有可用的修复程序,但似乎某些ASP.NET Core 1.1.x软件包的目标是NetStandard Library 1.6.1,它与 不 兼容使用.NET Framework ...请在MS网站上查看矩阵:https://docs.microsoft.com/en-us/dotnet/articles/standard/library#net-platforms-support
我们现在决定坚持使用ASP.NET Core 1.0.x.