我想将跟踪,控制台和控制台错误输出写入公共XML报告文件(例如进入 cad.UnitTests.xml )。默认情况下,此信息不是用XML编写的。
我该怎么办? nunit-console.exe
有以下参数:
/output=STR File to receive test output (Short format: /out=STR)
/err=STR File to receive test error output
但我需要在相同的XML文件中获取。我在两种情况下都需要它:nunit-console.exe
和nunit.exe
。另外,我查看了GUI NUnit的设置但没有找到任何内容。
我的BAT文件包含以下内容:
:: run_me.bat
:: © Andrey Bushman, 2015
ECHO OFF
CD /D %~dp0
SET file_name=cad.UnitTests
:: Run NUnit tests
call "%NUNIT%\nunit-console.exe" ^
/out="%~dp0%file_name%_out.txt" ^
/err="%~dp0%file_name%_err.txt" ^
/trace=Verbose ^
/noshadow ^
/xml="%~dp0%file_name%.xml" ^
"%~dp0%file_name%.dll"
:: Get the HTML report of the unit testing
call "%ReportUnit%\ReportUnit.exe" ^
"%~dp0%file_name%.xml" ^
"%~dp0%file_name%.html"
但即使我使用这样的命令:
call "%NUNIT%\nunit-console.exe" ^
/out="%~dp0%file_name%_out.txt" ^
/err="%~dp0%file_name%_err.txt" ^
/noshadow ^
/xml="%~dp0%file_name%.xml" ^
"%~dp0%file_name%.dll"
然后“%~dp0%file_name%_out.txt”和“%〜dp0% _err.txt“)。
我没有看到跟踪输出重定向的nunit-console.exe
选项(类似/traceFile
)。我看到/trace
参数,但它有其他用途。
对我来说这是必要的,因为我使用结果XML通过ReportUnit.exe生成HTML。我希望在HTML中看到详细信息。
我可以在我的单元测试代码中将Trace输出保存到TXT文件中:
/* SetUpClass.cs
* © Andrey Bushman, 2015
*/
namespace Bushman.CAD.UnitTests {
using System;
using System.IO;
using System.Diagnostics;
using NUnit.Framework;
[SetUpFixture]
public class SetUpClass {
private TextWriterTraceListener listener = null;
[SetUp]
public void RunBeforeAnyTests() {
Stream traceFile = File.Create("trace_out.txt");
listener = new TextWriterTraceListener(traceFile);
Trace.Listeners.Add(listener);
}
[TearDown]
public void RunAfterAnyTests() {
listener.Flush();
}
}
}
但我仍然希望能够通过NUnit的“原生”方式在XML文件(由NUnit生成)中获取此信息。