c# - 如何从我的代码运行 NUnit

标签 c# nunit

我想使用 NUnit 在我的插件中运行单元测试,但它需要在我的应用程序的上下文中运行。为了解决这个问题,我尝试开发一个运行 NUnit 的插件,它会在应用程序的上下文中执行我的测试。

我没有找到关于这个主题的具体文档,所以我在这里和那里挖掘了一段信息,并得出了以下代码(类似于我在 StackOverflow 中找到的代码):

    public static void Main()
    {
        SimpleTestRunner runner = new SimpleTestRunner();
        TestPackage package = new TestPackage( "Test" );
        string loc = Assembly.GetExecutingAssembly().Location
        package.Assemblies.Add( loc );
        if( runner.Load(package) )
        {
            TestResult result = runner.Run( new NullListener() );
        }
    }

结果变量说“没有 TestFixture”,尽管我确定它在那里。事实上我的测试文件包含两个测试。

使用我发现的另一种方法,总结如下代码:

TestSuiteBuilder builder = new TestSuiteBuilder();
TestSuite testSuite = builder.Build( package );

// Run tests
TestResult result = testSuite.Run( new NullListener(), NUnit.Core.TestFilter.Empty );

我看到 nunit 数据结构只有 1 个测试,我有同样的错误。

为了完整起见,我使用的是最新版本的 nunit,即 2.5.5.10112。

有人知道我错过了什么吗? 示例代码将不胜感激。 我的测试类是:

[TestFixture]
public class UnitTests
{
    public UnitTests()
    {
    }

    [Test]
    public void TestEqual()
    {
        long a = 10;
        long b = 10;
        Assert.AreEqual( a, b );
    }

    [Test]
    public void TestNotEqual()
    {
        long a = 10;
        long b = 11;
        Assert.AreNotEqual( a, b );
    }
}

最佳答案

下面的代码有助于解决问题

public static void Main()
{
    CoreExtensions.Host.InitializeService();
    SimpleTestRunner runner = new SimpleTestRunner();
    TestPackage package = new TestPackage( "Test" );
    string loc = Assembly.GetExecutingAssembly().Location;
    package.Assemblies.Add( loc );
    if( runner.Load(package) )
    {
        TestResult result = runner.Run( new NullListener(),
            TestFilter.Empty, false, LoggingThreshold.Off );
    }
}

关于c# - 如何从我的代码运行 NUnit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2798561/

相关文章:

c# - Holotoolkit 中的 HandDraggable 和 GestureAction 脚本有什么区别?

c# - FakeItEasy 重置对对象的调用

nunit - 如何在 visual studio 中使用 nunit

asp.net - 测试后 NUnit 回滚

c# - 如何在 WPF 中自定义组合框按钮的外观

c# - 使用 Entity Framework 和 Lambda 表达式的左外连接

c# - C++等效于C#Array.Sort

.net - 在 Visual Studio 2008 中为 .NET 程序集生成 NUnit 单元测试的好工具

.net - NUnit - 测试失败后的清理

c# - SQL Server 更新/触发时无效的 redis 缓存