Unit testing VisualStudio是否使我能够有选择地运行测试用例?

Unit testing VisualStudio是否使我能够有选择地运行测试用例?,unit-testing,visual-studio,Unit Testing,Visual Studio,如何将其隔离 假设有一个使用契约构建的模块(即实现一个接口)。这样做是为了单元测试目的和可扩展性 假设我的团队中有一个人(a)擅长为数据访问模块编写单元测试用例。因此,他的代码只是在加载适当的接口和程序集后实例化这个接口。这个人使用接口作为核心测试主题编写测试用例。(不确定这是否是正确的单词用法) 另一个人(B),他是模块的实际开发人员,在编写代码方面有点新手(并且对.net framework不太了解)。甚至他也写了一些测试用例。他/她根据团队领导提出的规范指南(如上所述)为模块编写代码 因此

如何将其隔离

假设有一个使用契约构建的模块(即实现一个接口)。这样做是为了单元测试目的和可扩展性

假设我的团队中有一个人(a)擅长为数据访问模块编写单元测试用例。因此,他的代码只是在加载适当的接口和程序集后实例化这个接口。这个人使用接口作为核心测试主题编写测试用例。(不确定这是否是正确的单词用法)

另一个人(B),他是模块的实际开发人员,在编写代码方面有点新手(并且对.net framework不太了解)。甚至他也写了一些测试用例。他/她根据团队领导提出的规范指南(如上所述)为模块编写代码

因此,A的测试用例将更符合系统目标。但是B的测试用例更像是探索.net框架。例如,它可能类似于探索File.Replace。除非您很好地阅读了文档,否则您可能会认为文件系统中“任何地方”的两个文件都可以“替换”。然而,这些文件却不这么说。但是说,B,他不知道。他编写测试用例来了解这一点

所以概括起来,有两组单元测试用例。为了能够跟踪工作和性能,并可能为B制定一个培训计划,我需要两个测试用例。然而,在总体上测试数据访问模块时,我只需要执行A的测试用例


VisualStudio使我能够做到这一点吗?有选择地运行测试用例。如何仅快速运行A的所有测试用例?

这取决于您使用的测试库。如果您使用的是MsTest,则可以使用

同样,如果您正在使用NUnit,则可以使用

更新

如果您真的必须在VisualStudio中运行它们,我会推荐您,但是我会质疑这是否有好处。必须手动检查测试用例是否通过或者覆盖率不是很高,因为可能会出错。您应该将此作为构建过程的一部分进行自动化。我经常认为VisualStudio会让它不推荐的事情(比如这样)变得困难


我还建议你们让人A和人B把程序配对在一起。经验较少的人的技能会提高得更快,因为A向B传授知识,而且质量应该更高,这样你就能更快地行动。

我认为为此目的进行测试分离是个坏主意。这可能会削弱较少人的士气 有经验的开发人员。而且,当多人修改同一个测试时,会产生一个问题。如果您真的担心这个问题,那么请确保由经验较少的开发人员编写的测试具有足够高的质量,可以被视为代码库的一部分。结对编程和代码检查对于这一点非常有用。这也给了开发者大量的反馈,他可以用来提高自己


这是一个普遍存在的问题。让代码库的一部分保持低质量通常不是一个好主意。即使您试图清楚地标记它。

经验较少的开发人员的测试代码本身并不是代码库的一部分。这也是他或她为什么选择编写代码的某种形式的文档。这些测试子模块将不会被审查,但是模块中编写的内容将被审查。您必须从命令提示符运行它吗?没有ide这样做的方法吗?我的意思是当您在内置VS中使用Ms测试基础设施时?
[TestCategory("Nightly"), TestCategory("Weekly"), TestCategory("ShoppingCart"), TestMethod()]
public Void DebitTest()
{
}
namespace NUnit.Tests
{
  using System;
  using NUnit.Framework;

  [TestFixture]
  [Category("LongRunning")]
  public class LongRunningTests
  {
    // ...
  }
}