2012-08-29 67 views
6

在现有的解决方案中,我添加了一个新的测试项目。在我的Test Project .cs文件中,我有一个用[TestClass]属性装饰的类和一个用[TestMethod]属性装饰的方法。我已经验证了在配置管理器中为生成测试项目选中了复选框(因为我的谷歌搜索已经显示这个问题是其他人遇到的问题)。我已经将测试项目设置为解决方案的启动项目。当我尝试开始测试时,我得到“无法启动测试项目,因为该项目不包含任何测试”。我对单元测试非常陌生。我错过了什么?Visual Studio 2010无法识别单元测试

[TestClass] 
public class UnitTest1 
{ 
    [TestMethod] 
    public void TestMethod1() 
    { 
     Whole bunch of stuff 
     Assert.Inconclusive("Done"); 
    } 
} 

更新:所以我打开了一个VS的新实例,去File => New => Project => Test Project。没有触摸或编辑任何东西。直奔CS文件,这里是它的全部内容:

using Microsoft.VisualStudio.TestTools.UnitTesting; 

namespace TestProject2 
{ 
public class Inspection 
{ 
    public bool SubmitInsp() 
    { 
     return true; 
    } 
} 

[TestClass] 
public class UnitTest1 
{ 
    [TestMethod] 
    public void TestMethod1() 
    { 
     Inspection insp = new Inspection(); 
     bool result = insp.SubmitInsp(); 

     Assert.IsTrue(result); 
    } 
} 
} 

约不含任何测试,当我尝试启动该项目同样的错误。在构建输出“无法加载文件或程序集”〜\ my documents \ visual studio 2010 \ Projects \ TestProject2 \ bin \ Debug \ TestProject2.dll或其依赖项之一中也发现了这种情况。 HRESULT:0x80131515)“

我不知道单元测试比这更简单。有没有搞错???

+0

你还可以通过选择并运行它来运行单元测试吗? E.g.如果右键单击实际的测试方法(在.cs文件中),并选择“运行测试”,那么它是否工作? –

+0

你可以发布你的测试课吗?我之前遇到过这个问题,我相信这是一个语法问题。 – timmy

+0

@CiaranG当我这样做时,我没有收到任何错误。但测试实际上并没有做它应该做的事情,所以我试图在其中设置一个断点来找出原因。当我尝试调试时,所有内容都会生成,但是断点上有一个感叹号,表示它永远不会被击中,因为“没有为此文档加载符号” – jmease

回答

1

测试项目保存到网络文件夹或本地计算机上的任何位置都有此问题。创建另一个测试项目并将其保存到我的闪存驱动器,工作得很好。我不知道是因为我的机器是64位还是因为它是虚拟机还是什么,但我想我只需要测试外部存储设备上的所有内容。

5

我能得到这个通过修改这里找到devenv.exe的配置文件的工作:

C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe.config

添加以下行<runtime>部分,然后重新启动Visual Studio:

<loadFromRemoteSources enabled = "true" /> 

(这里是link,帮助我)

+0

我在Windows Server 2008 R2上的VMware VM中拥有我的开发环境(因此它是64位)。我的代码位于网络驱动器上(当然,它位于映射到驱动器号的共享文件夹中)。这个提示解决了我的问题! – Colin

+0

由于我的测试项目文件位于网络文件夹中,因此我遇到了同样的问题。这解决了我的问题。 – Otiel

5

我有同样的问题,当在测试工作测试项目突然不再被认可。

一个项目文件从另一个工作测试项目比较向我表明了<ProjectTypeGuids>节点从主<的PropertyGroup >节点丢失。

添加<的PropertyGroup >节点内的这条线解决我的问题:

C#:

<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> 

VB:

<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids> 
2

FrstCBC's anwser并没有为我工作。 我在装有Windows 7 64位和Visual Studio 2012的VirtualBox机器上。

我不得不移动输出到本地文件夹:打开单元测试项目属性,并在构建选项卡,浏览到本地文件夹的输出路径。测试现在可以被检测到并且可以运行。

+0

谢谢,这对我有用 –

1

对我来说,这只是我的课程和方法不是public(我意识到海报确实有public,但是我通过谷歌搜索“testclass testmethod margin icons missing”找到了这篇文章)。愚蠢的错误,但也许它会帮助别人。

0

验证所有.cs文件在“属性”窗口中都标记为“编译”。如果它被标记为内容,那么你会遇到这个问题。

相关问题