Visual Studio 2012显示测试项目的错误图标

Fen*_*ton 24 visual-studio-2012

我有一个示例解决方案,在其中一个测试项目上有一个不同的"测试"图标,但在另外两个上没有.

测试图标

我认为项目类型guid可能在这个项目上有所不同,但在解决方案文件中它们都具有相同的项目类型(C#)

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DomainModel.Tests", "DomainModel.Tests\DomainModel.Tests.csproj", "{61A4733D-4C5B-4705-98CB-8048751BBEFA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Extensions.Tests", "Extensions.Tests\Extensions.Tests.csproj", "{1D6AA1C5-1FEC-44E4-9258-ACF84A20353C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Repository.Tests", "Repository.Tests\Repository.Tests.csproj", "{248434B7-3690-4705-85F0-66B765AEB431}"
EndProject
Run Code Online (Sandbox Code Playgroud)

在每个项目文件中,他们都有理想的项目类型(Test和C#)

<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
Run Code Online (Sandbox Code Playgroud)

为什么DomainModel.Tests有正确的测试图标,但Extensions.Tests和Repository.Tests有一个普通的C#库图标?

Jam*_*mes 19

当从类库项目开始然后从那里添加测试类时,这也可能发生在VS2013中.

将以下子节点添加到项目文件中的主PropertyGroup节点会修复此情况下的图标:

<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
Run Code Online (Sandbox Code Playgroud)

  • 您还需要添加`<TestProjectType> UnitTest </ TestProjectType>` (4认同)