我正在使用VS 2013
,F#
和NUnit
。值得注意的是我是F#
的新手。
我添加了非常基本的测试,当我将调试器附加到NUnit
并在调试模式下运行时,断点正被命中,但是测试返回时没有运行。
NUnit
将其标识为测试但未运行(假设)Assert
(可在底部屏幕截图中看到)。
测试:
module Test
open NUnit.Framework
[<TestFixture>]
type Test() =
[<Test>]
let ConcatinationTest =
Assert.AreEqual(Implementation.Concat("aaa"), "rootaaa")
|> ignore
实现:
module Implementation
let Concat(text:string) =
"root"+ text
我的期望一定是错的。为什么不起作用?
答案 0 :(得分:1)
OP,对于那些想知道这个有效的人来说。
module Test
open NUnit.Framework
[<TestFixture>]
type Test() =
member this.ConcatinationTestData() =
[new TestCaseData("roottext","text"); new TestCaseData("root","")]
[<Test>]
[<TestCaseSource("ConcatinationTestData")>]
static member ConcatinationTest(expected:string, text:string) =
Assert.AreEqual(expected,Implementation.Concat(text))
|> ignore
调试 - &gt;附加到流程 - &gt; NUnit的-agent.exe
结果:
答案 1 :(得分:1)
您将其定义为值,但必须是方法:
[<Test>]
static member ConcatinationTest () = ...
(根据OP的要求将评论转换为答案)