我有一個包含8000多個測試的測試套件,它很難看到代碼更改(這些測試案例是從一些日誌文件中自動提取的查詢)之間破壞的測試。從Nunit獲取失敗測試列表
是否有一種簡單的方法來獲取NUnit運行失敗測試列表?理想情況下,我想比較哪些測試受到影響。
我有一個包含8000多個測試的測試套件,它很難看到代碼更改(這些測試案例是從一些日誌文件中自動提取的查詢)之間破壞的測試。從Nunit獲取失敗測試列表
是否有一種簡單的方法來獲取NUnit運行失敗測試列表?理想情況下,我想比較哪些測試受到影響。
您可以實現'NUnit.Core.Extensibility.IAddin'和'NUnit.Core.EventListener'。所以你可以操縱你的測試結果。 NUnit(2.5或更高版本)將自動加載實現「IAddin」方法的類。
就像是:
using System;
using System.Text;
using NUnit.Core.Extensibility;
using NUnit.Core;
namespace YourNUnitAddIns
{
/// <summary>
/// Coleta informacoes da execucao do NUnit.
/// </summary>
[NUnitAddin(
Name="CollectNUnitFailAddIn",
Description="do something",
Type=ExtensionType.Core)]
public class CollectNUnitFailAddIn : IAddin, EventListener
{
#region IAddin Members
public bool Install(IExtensionHost host)
{
IExtensionPoint suiteBuilders = host.GetExtensionPoint("SuiteBuilders");
IExtensionPoint testBuilders = host.GetExtensionPoint("TestCaseBuilders");
IExtensionPoint events = host.GetExtensionPoint("EventListeners");
if (events == null)
return false;
events.Install(this);
return true;
}
#endregion
#region EventListener Members
public void RunFinished(Exception exception)
{
//do something here.
}
public void RunFinished(TestResult result)
{
//do something here.
}
public void RunStarted(string name, int testCount)
{
//do something here.
}
public void SuiteFinished(TestResult result)
{
//do something here.
}
public void SuiteStarted(TestName testName)
{
//do something here.
}
public void TestFinished(TestResult result)
{
//do something here.
}
public void TestOutput(TestOutput testOutput)
{
//do something here.
}
public void TestStarted(TestName testName)
{
//do something here.
}
public void UnhandledException(Exception exception)
{
//do something here.
}
#endregion
}
}
你應該能夠得到從NUnit的的XML輸出一個簡單的XSLT轉換的結果。
像CruiseControl這樣的持續集成工具已經爲此創建了XSLT轉換。
https://github.com/ccnet/CruiseControl.NET/blob/master/project/xsl/AlternativeNUnitDetails.xsl
您是否嘗試過使用一些持續集成工具,TeamCity的?它使得這很容易 – 2012-07-11 21:13:48
謝謝,我也會試一試。目前,實現一個事件監聽器完成了這項工作。 – 2012-07-12 19:24:28