F#,Akka.net - 从 TestkKit 继承时 Nunit3 不是 运行 测试

F#, Akka.net - Nunit3 not running tests when inheriting from TestkKit

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

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

当我 运行 来自 Visual studio(以及来自 nunit3-console.exe)的测试时,它找不到测试。当它不从 TestKit class.

继承时,它会找到测试
open NUnit.Framework
open Akka.TestKit

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

有人知道这是为什么吗?我是 F# 的新手,不知道为什么从基础 class 继承会导致 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" />

假设您正在使用 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 Test Runner,那将部分起作用。如果你安装它,请注意它还不兼容 NUnit 3.4.1,所以使用 3.0.0(以后没有任何效果)。

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