2014-06-18 30 views
1

有什么办法可以通过指定不应出现的关键字来过滤测试结果?在VS2010中列出测试结果,不要包含关键字

语境:

我已经写了一些C#类和方法,但没有实施这些方法现在(我让他们扔一个NotImplementedException让他们清楚地表明这一点)。我还为这些函数编写了一些测试用例,但由于这些方法抛出NotImplementedException,所以它们当前失败。这是好的,我现在期待这一点。

我想现在忽略这些测试,看看更有意义的其他测试结果,所以我试图弄清楚如何列出没有“NotImplementedException”的结果。但是,我只能列出具有该关键字的结果,而不能包含那些关键字。有什么办法可以列出那些没有的结果吗?使用一些通配符或什么?

我在VS2012中看到很多关于新测试资源管理器的信息,但这不是2010年的功能,这正是我使用的功能。

回答

1

如果需要,您可以通过标记此测试期望抛出异常并从而通过测试来通过此测试。

[TestMethod] 
[ExpectedException(typeof(NotImplementedException))] 
public void NotYetImplementedMethod(Object args) 
{ 
    .... 
} 

或者,您可以为测试创建类别。通过这种方式,您可以选择在测试浏览器中运行哪些测试,如果您将某个类别分配给大多数测试。

[TestMethod] 
[Testcategory("NotImplementedNotTested")] 
public void NotYetImplementedMethod(Object args) 
{ 
    .... 
} 

最后但并非最不重要的最简单的解决方案[Ignore]。这将全部跳过测试。

[TestMethod] 
[Ignore] 
public void NotYetImplementedMethod(Object args) 
{ 
    .... 
} 

参考:

+0

这些都很棒,我不知道有什么方法可以对测试用例进行分类和忽略。如果事实证明无法过滤,这是一个很好的解决方法。虽然我宁愿不必修改测试代码。 – 9a3eedi

+0

我想我要求的是在VS2010中不可能的,所以我将它标记为答案,因为这是一个很好的解决方法 – 9a3eedi

0

我也写了一些测试情况下,这些功能

如果你的测试链接到Test Case S于TFS工作项目,你可以简单地将测试用例的状态设置为Design。然后,在您的Test Plans中排除所有处于Designed状态的测试用例。如果他们没有链接到实际的测试用例工作项目(比方说一批单元测试),我相信最好的解决方案是Ignore attrbute(正如@Serv已经提到过的那样)。因为我认为你不想运行尚未实现的测试,并且浪费时间来找出如何将它们排除在测试结果之外。

+0

测试已实施。它正在测试的实际类不是,它会抛出一个NotImplementedException,它会使测试失败。另外,我没有使用TFS – 9a3eedi

+1

即便如此,如果您使用[TFS Application Lifecycle](http://msdn.microsoft.com/zh-cn/library/fda2bad5(v = vs.100).aspx)(User故事,测试用例,测试计划等等,都可以链接在一起),您可以创建“需求基础测试计划”,并排除实施的用户故事。如果不是,则使用“忽略”属性。 – Schaliasos

相关问题