【问题标题】:F#, Akka.net - Nunit3 not running tests when inheriting from TestkKitF#,Akka.net - Nunit3 从 TestkKit 继承时不运行测试
【发布时间】:2016-09-27 23:23:52
【问题描述】:

我正在尝试从一些 F# 代码中使用 NUnit 3 运行测试。

我正在创建一个继承自 Akka.Net TestKit 类的类,就像 C# 范例中的标准做法一样。

当我从 Visual Studio(和 nunit3-console.exe)可执行文件运行测试时,它无法找到测试。当它不从 TestKit 类继承时,它会找到测试。

open NUnit.Framework
open Akka.TestKit

[<TestFixture>]
type SomeActorTests() = 
    inherit Akka.TestKit.NUnit3.TestKit()
    [<Test>]
    member self.TestThatSomeStuffIsTrue() = 
        Assert.True true

有人知道为什么会这样吗?我对 F# 还很陌生,不知道为什么从基类继承会导致 TestFixture 属性被忽略。

代码编译,我将这些作为包:

<package id="Akka" version="1.1.1" targetFramework="net452" />
<package id="Akka.TestKit" version="1.1.1" targetFramework="net452" />
<package id="Akka.TestKit.NUnit3" version="1.1.1" targetFramework="net452" />
<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net452" />
<package id="NUnit" version="3.4.1" targetFramework="net452" />
<package id="System.Collections.Immutable" version="1.1.36" targetFramework="net452" />

【问题讨论】:

    标签: inheritance f# akka.net nunit-3.0


    【解决方案1】:

    假设您使用的是 Visual Studio 测试运行程序

    似乎 Akka 测试套件还不能与 NUnit 3.0 一起使用(请参阅此主题:https://github.com/akkadotnet/Akka.TestKit.Nunit/issues/10

    要解决此问题,您可以将 NUnit 降级到 2.x。另一种选择是切换框架并使用https://github.com/akkadotnet/Akka.TestKit.VsTest(我知道这很痛苦)。

    或者,如果您可以选择使用 ReSharper 测试运行器,则可以部分工作。如果您安装它,请注意它与 NUnit 3.4.1 尚不兼容,因此请使用 3.0.0(以后无法使用)。

    最后,我发现使用 NCrunch 测试运行器 适用于所有版本的 NUnit。

    【讨论】:

    • 降级 NUnit 有效。不知道为什么我一开始没有尝试。干杯!
    猜你喜欢
    • 1970-01-01
    • 2016-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多