我正在使用MailBoxProcessor构建并行单元测试运行器.
我需要为测试排队打印语句,所以我可以在测试完成后打印它们.我知道如何发送一个字符串并建立一个列表,所以我可以打印它们,但这迫使我使用sprintf并将它管道输入我的打印功能,并不像我想的那样干净.
[1..200]
|> List.iter (fun i ->
sprintf "Test %i" i &&& fun ctx ->
ctx.printfn <| sprintf "A guid %A" (ng())
ctx.printfn <| sprintf "I am test %i" i
ctx.printfn <| sprintf "A guid %A" (ng()))
Run Code Online (Sandbox Code Playgroud)
你可以在这里看到完整的代码:https: //github.com/lefthandedgoat/prunner/blob/master/Program.fs#L36-L41
并且看到这ctx是一个带有printfn方法的对象,该方法接受一个字符串并将其发布到单个邮箱,该邮箱将消息排队直到测试完成,然后循环遍历它们并打印它们.
我的目标是ctx.printfn看起来像这样
[1..200]
|> List.iter (fun i ->
sprintf "Test %i" i &&& fun ctx ->
ctx.printfn "A guid %A" (ng())
ctx.printfn "I am test %i" i
ctx.printfn "A guid …Run Code Online (Sandbox Code Playgroud) f# ×1