【问题标题】:Unit Testing without a main static method?没有主要静态方法的单元测试?
【发布时间】:2021-06-26 23:21:04
【问题描述】:

我开始学习单元测试教程。我正在使用 Visual Studio 2019,我正在尝试运行项目/测试,但不断收到这些错误,

CS5001 程序不包含适合入口点的静态“Main”方法

CS006 元数据文件 'C:(filepath)... .exe' 找不到

我知道这两个类都没有主要的静态方法,但我所遵循的教程也没有,所以我不确定问题是什么。我已经搜索了 Stack Overflow 和 Google,但只能在我的脑海中找到答案,知道如何解决这个问题吗?

这是非常简单的代码,因为我才刚刚开始,所以我认为问题出在其他问题上,但不确定(显然)

更新: 这是我的解决方案结构的屏幕截图: structure of solution 原始项目是一个控制台应用程序,我在解决方案中添加了一个测试项目。

【问题讨论】:

  • 听起来您在创建项目时使用了控制台应用程序模板,您应该改为创建一个单元测试项目
  • 如果您的问题已经解决,请考虑accepting it

标签: c# visual-studio unit-testing


【解决方案1】:

测试项目不是应用程序,通常使用测试运行器运行。

从 VS 的测试资源管理器运行测试

选项 B。直接从其代码运行测试。

【讨论】:

  • 我试图像常规应用程序一样运行测试 (Ctrl+F5)。没有意识到他们使用“Ctrl+A+R”以不同的方式“运行”。谢谢!
【解决方案2】:

听起来您已经在控制台应用程序模板中编写了单元测试,删除了 Program 类的 Main() 方法并按 F5 运行单元测试。

您不进行 F5 单元测试,而是从测试运行程序运行它们。右键单击任何测试方法并选择“运行单元测试”之类的内容以显示该测试运行程序。或者单击测试 -> 测试资源管理器以查看所有发现的测试。另见Run unit tests in "Get started with unit testing"

如果可行,请创建一个实际上是单元测试项目的新项目,这样您至少可以获得一个精美的项目图标,并将您的测试代码移动到该项目中。

【讨论】:

  • 原来的解决方案是一个控制台项目,但是为了测试我创建了另一个测试项目。对吗?
  • 在这种情况下,您可能从 Program 类中删除了不应该删除的内容。
  • 你不能以同样的方式运行它。 F5 用于普通应用程序,对于测试,您需要打开测试资源管理器并在那里运行它们(或在测试类或测试方法上按 Ctrl-R-Ctrl-T)。
  • 您可以将测试放入类库中。如果你安装了 nUnit 3 Test Adapter 作为扩展,VS 可以从 dll 中执行测试。
猜你喜欢
  • 2019-05-11
  • 1970-01-01
  • 2011-08-23
  • 1970-01-01
  • 1970-01-01
  • 2022-01-02
  • 1970-01-01
  • 2023-04-01
  • 2018-08-23
相关资源
最近更新 更多