F#,Akka.net - Nunit3在继承TestkKit时没有运行测试

时间:2016-09-26 19:12:41

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

我试图从一些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" />

1 个答案:

答案 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 Test Runner ,则可以部分使用。如果你安装了它,请注意它还不兼容NUnit 3.4.1,所以使用 3.0.0 (以后什么都不用)。

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