这是我的单元测试之一:
[<NCrunch.Framework.Isolated>]
let [<Test>] ``inputX test`` () =
let simulator = Simulator(@"H:\MyProj\Inputs" @@ @"inputX.txt",false)
use sw = new StringWriter() in Console.SetOut(sw)
simulator.Run()
let expected, actual =
File.ReadAllText(@"H:\MyProj\Inputs" @@ @"inputX.out").Replace("\r",""),
sw.ToString()
StringAssert.Contains(expected, actual)
我在整个模拟器代码中执行 printfn,只要测试没有通过,NCrunch 就会在其输出窗口中显示输出。
我想在断言之后显示信息,但我不知道该怎么做,似乎也找不到简单的答案。
我想也许我需要类似的东西
Console.Set(NCrunchEnvironment.OuputStream)
printfn "%A" stuff
但这不存在。
我是否必须为模拟器创建一个新进程并以这种方式“捕获”输出?或者可能将一个流传递给模拟器(或从中返回一个)?