我使用Xunit在F#中执行多个测试,使用visual studio作为我的IDE,具有相同的形式。例如,这里有一个可能执行的测试的例子,
let add x y = x + y
//Now we want to test this
[<Fact>]
let test1() =
Assert.True(add 0 1 = 1 , "userMessage")
[<Fact>]
let test2() =
Assert.True(add 1 1 = 2 , "userMessage")
[<Fact>]
let test1() =
Assert.True(add 1 2 = 3 , "userMessage")
也许还有更多。
这有点重复,所以我决定写下面的内容,
let listOfTests =
[
0 , 1 , 1 , "userMessage"
1 , 1 , 5 , "userMessage" //this should fail
1 , 2 , 6 , "userMessage" //this should also fail
]
let testMaker (in1 , in2 , out , mess)
let truth = add in1 in2 = out
Assert.true(truth , mess)
[<Fact>] //I think that this might be where I need to make changes??
let runTests()=
List.map testMaker listOfTests
|>ignore
这种类的工作方式是执行测试,但是当我运行runtests()时,只有第一个失败的测试出现在我的测试资源管理器中,而不是第二个应该失败的测试。我看过一些关于理论的代码,但是代码主要用C#编写,我在翻译时遇到了一些麻烦。我试过用, [] []
作为属性而不仅仅是“类型理论没有定义”。同样适用于PropertyData。