这个问题有多个层次;我将尝试从实际上所要实现的目标开始:)
使用menuaction
,我的测试的一部分包括集成测试,该测试会启动生成自己的日志文件的其他进程。在测试失败时,我想将这些日志转储到stdout。 (由于日志是在临时目录中创建的,因此它们会在测试完成后清除,因此无法检查)。
我的想法是编写一个新的ginkgo
并连接到ginkgo.Reporter
接口函数中以实现此目的。
第一个问题是如何将日志文件位置传递到SpecDidComplete
中。 (正在Reporter
调用中创建日志)。似乎没有一种干净的方法,因此由于传递到BeforeEach
函数中的SpecSummary
有一个SpecDidComplete
字段,我认为我可以简单地将日志位置写入{{ 1}},然后处理CapturedOutput以抓取我想要的数据。
但是,不幸的是,该字段始终为空。为什么会这样?
这是我设置的基本代码:
在套件中连接Reporter:
CapturedOutput
记者现在才这样做:
stdout
在我的测试中,我现在要做的是:
RunSpecsWithDefaultAndCustomReporters(t, "Integration Suite", []Reporter{NewGeodeLogReporter()})