2016-05-12 32 views
0

例如,我可能會爲我的暫存網站編寫大量的Selenium測試,現在不是再次編寫完全相同的代碼,而是通過我的實時網站上的網址重複使用代碼。使用Visual Studio 2015的NUnit 3如何提供一些參數的測試?

(我可能需要的不僅僅是更多的URL,我可能需要不同的登錄/密碼等)

我想這可能是可以通過使用.testsettings文件,並在我的測試中,我能讀什麼目前的URL是我應該測試等。

必須有一種方法,你怎麼做?

回答

0

我建議將測試配置存儲在一個簡單的基於文本的文件中。它可以像第一行的URI一樣簡單,第二行的用戶名和第三行的密碼等。或者,如果您的項目中已經有NewtonSoft.JSON,則創建一個簡單的JSON配置文件。

然後在您的測試程序集安裝程序中,您可以讀入該文件並將其解析爲可從所有測試中訪問的全局靜態測試設置對象。

我會檢查默認TestSettings.json到源代碼管理,所以它始終可用,那麼你可以檢查是否存在TestSettings.local.json。如果是這樣,加載它,否則加載默認值。

如果存在TestSettings.json,您也可以在代碼中設置默認值並覆蓋它們。

要在運行所有測試之前加載文件,請使用SetupFixture屬性,該屬性允許您在測試程序集加載時運行所有測試,然後運行所有測試。

namespace NUnit.Tests 
{ 
    using System; 
    using NUnit.Framework; 

    [SetUpFixture] 
    public class MySetUpClass 
    { 
    public static TestSettings Settings { get; set; } 

    [OneTimeSetUp] 
    RunBeforeAnyTests() 
    { 
     // Load your settings file here into the static 
     // Settings property 
    } 
    } 
} 
+0

最後,我們將添加一個功能,以便您可以通過runsettings文件或通過命令行參數向控制檯運行器提供參數。然而,Rob的推薦具有無論您如何運行測試都能工作的優勢。 – Charlie

+0

是的但是:)我看到一個問題。 Rob狡猾地建議我可以讀取該文件並將其解析爲一個全局靜態測試設置對象,然後我可以從我的所有測試中訪問該對象.....我該怎麼做?因爲據我所知,我不知道哪個測試首先運行,我將如何獲得首先運行的測試來讀取文件並將其解析爲全局對象?我想我必須讓每個測試讀取文件。 – IanMcRV

+0

我會用代碼更新我的評論。 NUnit具有在所有測試之前運行的程序集設置。 –

相關問題