在MSTest中可以有多个'TestClass'吗?

时间:2009-04-30 13:33:33

标签: visual-studio-2008 mstest

我正在尝试在MSTest中编写单元测试,并且我创建了两个TestClasses。当我查看测试列表编辑器时,显示的唯一测试是出现在其中一个类中的测试。

我无法弄清楚如何从这两个类中运行测试。有什么想法吗?

6 个答案:

答案 0 :(得分:1)

是的,这绝对是可能的,并且很奇怪您的所有测试都没有显示出来。您的两个测试类都具有[TestClass()]属性吗?

答案 1 :(得分:1)

我们的一些项目中有数百个测试用例。这不仅是可能的,而且是必不可少的。很可能您缺少测试类的类和/或方法的属性。

答案 2 :(得分:1)

如果您的类和方法仅是公开,则将在“测试资源管理器”中对其进行查看。我遇到了同样的问题,只有当我在“类和方法”前面应用 public 关键字时,该问题才会消除。

[TestClass]
    public class Class1
    {
        [TestMethod]
        public void Method1()
        {
}}

答案 3 :(得分:0)

似乎清理解决方案,关闭Visual Studio,删除所有TestResults,删除.vsmdi文件,删除.ncb文件并重建解决方案已修复问题。

答案 4 :(得分:0)

我们在解决方案中有两个测试项目,测试列表显示了两个项目的所有测试。

我记得我在过去曾遇到过这个问题,测试列表中缺少一些测试方法,我怀疑它必须做与.vsdmi文件有关的bug。如果您使用源代码管理并允许多次签出,就会发生这种情况。

确保:   您的所有测试类都具有适当的属性。   你的所有方法都有适当的属性。

如果它仍然发生备份你.vsdmi文件将它放在其他地方并删除项目树中的那个(很可能是根目录)。然后关闭并重新打开您的项目/解决方案,然后点击Test / Window / Test View ...

希望这有帮助!

答案 5 :(得分:0)

(适用于下一个通过Google到达这里寻找答案的人)

就我而言,以上都不适用。

要在“测试资源管理器”(VS2019)中显示所有测试文件(及其中的类)的关键要素是在每个测试类中添加public关键字。 Nunit以前不需要它,但是我们转到了MSTest,然后测试消失了。添加public会使它们再次出现:

[TestClass]
public class TestBibTeX    // <-- +public+
{
  ...