Rider NUnit 测试问题:程序不包含 main
Posted
技术标签:
【中文标题】Rider NUnit 测试问题:程序不包含 main【英文标题】:Rider NUnit Test problem: Program does not contain main 【发布时间】:2019-09-30 13:37:09 【问题描述】:我无法在 Rider (JetBrains) 上开始我的 NUnit 测试。我有一个名为 ISDI 的控制台应用程序项目,我正在尝试在同一解决方案中使用一个名为 ISDITest 的 NUnit 测试项目对其进行测试。
这是我的代码:
using System;
using ISDI;
using NUnit.Framework;
namespace ISDITest
[TestFixture]
public class TestNome
[Test]
public void TestRoom()
IRoom r = new Room(0);
IEntity p = new Player();
r.InsertEntity(p);
Assert.Equals(r.GetEntities().Count, 1);
Assert.True(r.GetEntities().Contains(p));
当我尝试运行测试时出现构建错误:
程序不包含适合入口点的静态“Main”方法
我认为测试类中的测试方法不需要 Main 并且我不知道如何解决这个问题,因为我在创建它时已经指定这是一个测试项目。 如果这是一个愚蠢的问题,我很抱歉,但我才刚刚开始使用 C# 和测试。
【问题讨论】:
尝试像这样[Test, STAThread]
将STAThread
添加到您的测试中。
【参考方案1】:
运行程序时,您需要一个入口点——代码开始的地方。通常,Main
用于此目的,但当您有NUnit
时,您可以使用[Test]
作为入口点。
当您想要运行测试时,您需要使用[Test]
标志作为程序的入口点。为此,您不需要 Main
方法。
我建议阅读 Rider / 单元测试文档,了解有关如何在不实现 Main
方法的情况下运行 [Test]
代码的更多信息。
https://www.jetbrains.com/help/rider/Unit_Testing__Index.html
【讨论】:
【参考方案2】:解决了在我要测试的项目中放置一个空 Main 的问题。不过,这对我来说没有任何意义。
【讨论】:
我添加了一个不使用空 Main 方法的解决方案,并解释了它是如何工作的。以上是关于Rider NUnit 测试问题:程序不包含 main的主要内容,如果未能解决你的问题,请参考以下文章