我可以使用以下代码将日志文件附加到我的 Gallio 3.2 验收测试报告中:
TestLog.AttachPlainText("Attached log file", File.ReadAllText(path));
当我在本地运行测试时,我可以通过在 Web 浏览器中查看报告来查看日志文件内容。所以,我希望能够在 CCNET 中查看附件。我的 CCNET 项目正在运行 MsBuild,它会生成测试日志 ( Regression.Acceptance.tests.xml
) 和附件(排列在文件夹中Regression.Acceptance.tests
)。我可以看到这些在 CCNET 运行构建之后存在。
我添加了以下内容以将结果和附加文件合并到我的构建日志中:
<merge>
<files>
<file>Source\Reports\Regression.Acceptance.tests.xml</file>
<file action="Copy">Source\Reports\Regression.Acceptance.tests</file>
</files>
</merge>
如果我查看 CCNET 服务器日志,我会看到以下行,它在测试结果中合并:
2010-05-26 13:39:36,359 [DashboardAcceptanceTests:INFO] 合并文件“Regression.Acceptance.tests.xml”
但是没有提到附件文件夹,如果我查看 artefacts 文件夹,我可以看到合并的构建日志,但没有包含附件的文件夹,当我尝试浏览到附件时出现以下错误通过网络仪表板的报告:
异常消息 附件未内联到 XML 报告中。 异常详细信息 System.InvalidOperationException:附件未内联到 XML 报告中。 在 CCNet.Gallio.WebDashboard.Plugin.GallioAttachmentBuildAction.CreateResponseFromAttachment(XPathNavigator attachmentNavigator) 在 CCNet.Gallio.WebDashboard.Plugin.GallioAttachmentBuildAction.Execute(ICruiseRequest CruiseRequest) 在 ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.ServerCheckingProxyAction.Execute(ICruiseRequest CruiseRequest) 在 ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.BuildCheckingProxyAction.Execute(ICruiseRequest CruiseRequest) 在 ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.ProjectCheckingProxyAction.Execute(ICruiseRequest CruiseRequest) 在 ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.CruiseActionProxyAction.Execute(IRequest 请求) 在 ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.CachingActionProxy.Execute(IRequest 请求) 在 ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.ExceptionCatchingActionProxy.Execute(IRequest 请求)
当我尝试使用以下方法嵌入文件时,我得到了类似的结果:
TestLog.EmbedPlainText("Embedded log file", File.ReadAllText(path));
有可能让这个工作吗?据我了解,任务Regression.Acceptance.tests
复制时需要保留文件夹内的目录结构,但文档有点模糊,我还没有让它做任何事情!merge