我目前正在使用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()
{ }
}
}
我该如何解决这个问题?我做错了什么?
答案 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)
我终于弄清楚了我的问题。我认为大多数人都和我一样遇到这个问题。根本问题是我以错误的方式添加了单元测试类。尝试使用“测试”部分重新添加文件。这将使类依赖于项目。否则,运行测试时该项目将不包含该项目。