在单元测试项目中运行多个单元测试

时间:2013-01-29 19:26:28

标签: c# unit-testing visual-studio-2012 mstest

我目前正在使用C#和Visual Studio 2012进行项目。

我很难弄清楚为什么VS 2012不想运行我的所有测试。

我有一个测试项目,运行1个单元测试。无论我尝试过什么,它都不想运行其他单元测试。通过Test Explorer未检测到,“Not Run”测试不包含该文件。

这是一个明确的基本框架:

(我编辑了框架以包含解决方案的每个部分)

Solution
    MainProject
        ProjectA.Tests (that is the project)
           UnitTestsA.cs (Actually run)
           UnitTestsB.cs (Neven run)

以下是第二个单元测试文件的代码:

using System; 
using Microsoft.VisualStudio.TestTools.UnitTesting; 
namespace MagicAdmin.Tests 
{      
    [TestClass] 
    public class UnitTest1 
    { 
        [TestMethod] 
        public void TestMethod1() 
        { } 
    } 
} 

我该如何解决这个问题?我做错了什么?

3 个答案:

答案 0 :(得分:2)

为了使Visual Studio能够识别您的单元测试,您需要重建单元测试项目。单元测试项目可能未设置为当前构建配置的一部分,因此在构建解决方案时不会构建。

答案 1 :(得分:1)

我遇到了这个问题,但刚刚找到了解决方案。

我正在构建一个用于DotNet控制台应用程序的.NET Core库。图书馆有一个单独的解决方案。该库包含库的项目,单元测试项目和展示项目。

我按照这些文章中的步骤进行了操作:

我在库中添加了一些额外的库类,我确保更改了lbirary的包版本。我重建了库,并将其发布到NuGET。

我在测试项目中添加了一个额外的类,无法让测试类中的例程运行。我遵循了以下步骤:   - 为测试项目添加了常规C#类   - 在课程顶部添加了[TestClass]   - 添加了一个公共void方法,并在其上方添加了[TestMethod]   - 在测试项目中使用管理NuGET项目,并确保我更新到库包的最新版本

但是“全部运行”没有看到额外的测试。

我终于发现新的测试类需要声明为public!然后,下一个Run All在新测试类中正确选择了额外的测试方法。

以下是额外测试类中必要事项的概述:

using System;
using UtilityLib.APIDir;

namespace UtilityLibTest
{
   [TestClass]
   public class UnitTest_NewAPI
   {
       [TestMethod]
       public void TestNewAPI()
       {
          NewAPI tester = new NewAPI();
          bool someResult = tester.DoSomething();
       }
   }
}

有关Visual Studio项目的其他评论:

Visual Studio存在一些问题,其中关闭Visual Studio的所有副本并重新启动可以解决问题。

当我创建我的第一个.Net核心lib项目时,将其发布到NuGET,然后使用NuGET将其加载到另一个项目中,但我无法引用库中的类。我开始研究一些工具来尝试查看NuGET包。

但是在系统重启之后(对于一个完全不相关的问题),我重新启动了Visual Studio,然后我就可以从我的主项目中访问库类了。

另一个问题是来自使用nuget库的项目,有时在使用nuget更新程序集的版本之后,调用程序可能无法访问更新库中的名称空间或类。调用项目上的所有重建都为我昨天解决了这个问题。

答案 2 :(得分:0)

我终于弄清楚了我的问题。我认为大多数人都和我一样遇到这个问题。根本问题是我以错误的方式添加了单元测试类。尝试使用“测试”部分重新添加文件。这将使类依赖于项目。否则,运行测试时该项目将不包含该项目。