C# Rider NUnit测试问题:程序不包含main
我无法在Rider(JetBrains)上开始NUnit测试。我有一个名为ISDI的控制台应用程序项目,我正试图在同一个解决方案中使用名为ISDITest的NUnit测试项目对其进行测试 这是我的代码:C# Rider NUnit测试问题:程序不包含main,c#,unit-testing,rider,C#,Unit Testing,Rider,我无法在Rider(JetBrains)上开始NUnit测试。我有一个名为ISDI的控制台应用程序项目,我正试图在同一个解决方案中使用名为ISDITest的NUnit测试项目对其进行测试 这是我的代码: using System; using ISDI; using NUnit.Framework; namespace ISDITest { [TestFixture] public class TestNome { [Test] pub
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#和测试。解决了这个问题,在我想要测试的项目中放置了一个空的Main。不过,这对我来说没有任何意义。当运行程序时,您需要一个入口点—代码开始的地方。通常,
Main
用于此操作,但当您拥有NUnit
时,可以使用[Test]
作为入口点
当您想要运行测试时,您需要使用[Test]
标志作为程序的入口点。对此,您不需要Main
方法
我建议阅读骑手/单元测试文档,了解有关如何在不实现Main
方法的情况下运行[Test]
代码的更多信息
尝试像这样将
STAThread
添加到测试中[test,STAThread]
。我添加了一个不使用空Main方法的解决方案,并解释了该方法的工作原理。