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