使用c#在两个不同的excel表中写入结果数据

时间:2015-04-14 11:54:05

标签: c# export-to-excel ui-automation coded-ui-tests

我正在使用c#来编写自动化结果。我有要求在运行自动化端到端流程时我必须在不同的相同Excel表中写入结果。 当我的testmethod给出结果为pass时,我必须以下面的格式在sheet1中写出该testmethods的结果

Testclassname | testmethodname | pass(yes/No) | time 

当testmethod失败时,请写上

Testclassname | testmethodname | Fail(yes/No) | time | exception

如何在c#??

中实现这一点

2 个答案:

答案 0 :(得分:3)

让Test方法自己写入Excel文件是个坏主意。我个人认为写excel文件没什么价值,但你可能有你的理由。

根据您运行测试的方式,可能有更好的方法来实现您的目标:

  1. 使用命令行vstest.console.exe运行测试时,可以指定Logger。 /Logger:trx将创建包含所有测试结果的XML文件。 XML文件很容易解析。 XSLT到HTML表格或使用Excel Package Plusthe OleDB driver for ADO.NET等包。

  2. 您可以将测试结果链接到Build(通过Team Build或MTM执行测试时以及使用/Logger:TfsPublisher从命令行执行测试(请参阅:MSDN)。然后可以使用数据仓库create your excel file using the Excel Powerpivot features

  3. 如果您需要更多详细信息,请进行实验,将您的发现作为新问题发布,并提出具体问题。

答案 1 :(得分:-1)

您可以使用TestContext检查当前的测试方法名称以及测试结果:

测试名称TestContext.TestName;

测试结果TestContext.CurrentTestOutcome == UnitTestOutcome.Failed

现在您应该能够在TestCleanup中创建if-else来检查测试是否失败,获取测试方法名称。根据测试结果,将其写入一个或另一个Excel文件。

要在C#中写入Excel文件,我会谷歌并尝试一些例子:https://www.google.com/#q=writing+to+an+excel+file+in+c%23

<强>更新

请记住,将来当您的测试套件变大时,您可能希望并行运行测试。所以TestCleanup中的任何东西都必须是并行证明。写入相同的Excel文件将导致问题。如杰西建议的那样,在运行后处理测试结果会更好。