我正在运行.NET Framework 4.6.1
来构建一个测试类库,我在其中构建MSTest
个测试(Microsoft.VisualStudio.TestTools.UnitTesting
)。我可以通过进入包含测试项目并运行dotnet test
的文件夹来完全运行测试。
但是,VS不会在Text Explorer中发现测试。我已经将每个相关的NuGet软件包更新到最新版本,以回答这个问题:
我也尝试了Test -> Test Settings -> Default Processor Architecture -> x86
和x64
。
我总是收到以下错误:
[1/10/2018 5:01:03 PM警告]测试运行将使用为其构建的DLL 框架Framework45和平台X86。以下DLL不会 运行的一部分:
这会导致什么?如果它有所帮助,我的所有同事都有同样的问题,而且只有这个解决方案。
这是一个Microsoft.AspNetCore 1.1.2
项目。
编辑:csproj:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CsvHelper" Version="6.0.0" />
<PackageReference Include="Microsoft.AspNetCore.TestHost" Version="2.0.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
<PackageReference Include="Microsoft.VisualStudio.TestPlatform" Version="14.0.0.1" />
<PackageReference Include="Moq" Version="4.7.99" />
<PackageReference Include="MSTest.TestAdapter" Version="1.2.0" />
<PackageReference Include="MSTest.TestFramework" Version="1.2.0" />
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\CommonHelpers\CommonTestHelpers.csproj" />
<ProjectReference Include="..\ks-systems\ks-systems.csproj" />
</ItemGroup>
<ItemGroup>
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>
</Project>
编辑2:
在菜单栏中更改为x86
/ x64
似乎无法更改.csproj
。我手动改为x86
- 这让他们被发现了。现在所有56项测试都失败了,具体如下:
消息:无法创建类cm-tools.Tests.Services.TripScholarshipServiceTest的实例。错误:System.BadImageFormatException:无法加载文件或程序集&#39; CtsPlatform,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null&#39;或其中一个依赖项。试图加载格式不正确的程序..
请注意,进行上述更改会导致发现测试,并导致所有测试失败,包括从控制台尝试dotnet test
时,无需更改即可正常工作。