簡體   English   中英

使用NUnit按參數區分單元測試和集成測試類別

[英]Differentiate between unit and integration tests category by parameter with NUnit

我有NUnit測試,這些測試分別在單元(快速)測試和集成(慢速)測試之間進行。

現在,我有一次針對http模擬(在這種情況下,它們是單元測試)和真實的Web服務器(在這種情況下,它們是集成測試)運行的測試。

因為測試代碼僅在使用的http對象中有所不同,所以我這樣做如下:

    async public Task HttpTest([Values("Real", "Mock")] string httpType)
    {
        var HttpObject = (httpType == "Mock") ? MockObject : RealObject;
        ...
    }

這很好。 但是現在我想創建單元測試和集成測試的類別,因為通常我只想運行(快速運行的)單元測試。

我不必按類別進行操作,但是我也不知道其他方法。

我可以通過某種方式選擇是否要從命令行運行“真實”和/或“模擬”測試嗎?

假設要以相同的方式運行所有測試,可以在命令行上指定運行參數,例如

nunit3-console.exe mytests.dll -p "http=Real"

然后,您可以使用來在需要該參數的任何測試中檢索該參數

var httpParam = TestContext.Parameters.Get("http", "Real");

如果命令行中未提供參數,則調用中的第二個參數是要使用的默認值。

如果以這種方式進行,則無需多個測試用例或類別。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM