我使用specflow nunitexecutionreport
命令生成我的測試的html報告,並將其複製到文件夾中,其中包含報告,生成的html和成功或失敗時所採用的屏幕截圖的時間戳(全部以編程方式完成)。但該文件夾的HTML報告沒有該時間的功能文件文本。我想知道如何,對於每個測試我可以在運行時獲取功能文件文本,所以我可以將它複製到該文件夾。specflow以編程方式獲取方案描述
回答
IF您可以保證您使用的是NUnit來運行Specflow測試,然後您可以編寫一個NUnitAddin,它可以在運行時獲取Specflow輸出。我以前爲personal project做過這個。
您有一個類
[NUnitAddin(
Name = "RedGreenRefactor.DatCapture.NUnitAddIn",
Description = "Captures both test data and test output so that SpecFlow steps can be correctly consolidated by RedGreenRefactor",
Type=ExtensionType.Core)]
public class Addin : IAddin
{
public bool Install(IExtensionHost host)
{
IExtensionPoint listeners = host.GetExtensionPoint("EventListeners");
if (listeners == null)
return false;
listeners.Install(new NUnitCapture());
return true;
}
}
和你的插件的核心註冊看起來像這樣
public class NUnitCapture : NUnit.Core.EventListener
{
...
public void TestOutput(NUnit.Core.TestOutput testOutput)
{
var text = testOutput.Text.Trim();
Debug.WriteLine(String.Format("[{0}]", text));
if (text.StartsWith("Given")
|| text.StartsWith("When")
|| text.StartsWith("Then")
|| text.StartsWith("And"))
{
CreateStep(testOutput);
return;
}
if (text.StartsWith("-> done"))
{
SetStepToSuccess();
return;
}
if (text.StartsWith("-> error"))
{
SetStepToFail();
return;
}
if (text.StartsWith("-> No matching step definition found for the step."))
{
SetStepToPending();
return;
}
}
我正在使用nunit,我會嘗試這個。 謝謝,我會讓你知道的。 –
非常感謝@AlSky –
這是不是一個真正的答案,但我需要給一個格式的響應所以這將需要編輯後
你真的需要這種通過改寫輪,或者至少你真的需要重寫測試運行器進程?
例如,下面的輸出來自TeamCity,其運行NUnit超過了specflow生成的測試。
[20:29:38][MyCode.Tests.dll] MyCode.Tests.MyFeature.Reload
[20:29:38][MyCode.Tests.MyFeature.Reload] Given I have a config reloader
[20:29:38][MyCode.Tests.MyFeature.Reload] -> done: ConfigReloadTests.GivenIHaveAConfigReloader() (0.1s)
[20:29:38][MyCode.Tests.MyFeature.Reload] And a config A that will unload
[20:29:38][MyCode.Tests.MyFeature.Reload] -> done: ConfigReloadTests.GivenAConfig("A") (0.0s)
[20:29:38][MyCode.Tests.MyFeature.Reload] And a config B that wont unload
[20:29:38][MyCode.Tests.MyFeature.Reload] -> done: ConfigReloadTests.GivenAConfigThatWontUnload("B") (0.0s)
[20:29:38][MyCode.Tests.MyFeature.Reload] When I reload my configs
[20:29:38][MyCode.Tests.MyFeature.Reload] -> done: ConfigReloadTests.WhenIReloadMyConfigs() (0.3s)
[20:29:38][MyCode.Tests.MyFeature.Reload] Then I should have 2 instances
[20:29:38][MyCode.Tests.MyFeature.Reload] -> done: ConfigReloadTests.ThenIShouldHaveInstances(2) (0.1s)
現在這是一個標準的開箱即用結果,大概需要十五分鐘才能完成。它完全支持,並免費提供。 或者你需要自定義的東西,我從你的問題缺少?
我正在處理的項目需要全部定製 –
使事情變得更加複雜 –
- 1. 有沒有辦法以編程方式讀取宏描述?
- 2. 以編程方式獲取解決方案詳細信息
- 3. BDD SpecFlow方案
- 4. 以編程方式獲取使用概述
- 5. 以編程方式設置構建描述
- 6. 以編程方式禁用「創建排序描述符」列
- 7. Google DocumentsList API - 以編程方式設置描述
- 8. Sitefinity - 以編程方式設置標題和描述
- 9. 重用SpecFlow方案
- 10. 如何以編程方式從已安裝的應用程序獲取方案?
- 11. 使用反射獲取方法描述
- 12. 如何以編程方式激發方法,這是由選擇器描述的?
- 13. 如何以編程方式獲取layout_weight?
- 14. 以編程方式獲取IIS版本
- 15. 以編程方式獲取Outlook信息
- 16. 以編程方式從GitHub獲取
- 17. 以編程方式獲取UIButton
- 18. 以編程方式獲取.ASPXAUTH cookie值
- 19. 以編程方式獲取表控件
- 20. 以編程方式獲取iOS7的IMEI
- 21. 以編程方式從View獲取UIImageView。
- 22. 以編程方式獲取SignalR版本
- 23. 以編程方式獲取ssl證書
- 24. 以編程方式獲取Maven構件
- 25. ASP.NET以編程方式獲取UserControl VirtualPath
- 26. 以編程方式獲取框架ID
- 27. 以編程方式獲取C:\ Users
- 28. TFS:以編程方式創建錯誤並編寫描述空間問題
- 29. 以編程方式編輯後端數據,例如Magento中的類別描述
- 30. 以編程方式指定Fogbugz案例
@AlSki我不想給出我所有的功能文件。我想在我的result.html女巫我正在手工建設的C#,原始功能文本 –
好吧,你能解釋你想做什麼?不是技術問題,但你想要達到什麼目標? – AlSki
此外,在生成html和* current *版本的鏈接文件時記錄的內容可能會斷開。通過嵌入內容,您可以避免斷開連接。 – AlSki