簡體   English   中英

Selenium 和 MSTest:[DataRow] 在 TestClass 級別?

[英]Selenium and MSTest: [DataRow] at a TestClass level?

提前謝謝了!

我正在創建一個 Selenium 框架(C#,MSTest)並卡住了,試圖使測試數據驅動。 我想要實現的目標:我需要支持不同類型的用戶(假設我有 4 個用戶)登錄被測應用程序。 由於所有這些用戶都有不同的權限,我計划根據執行它們的用戶將測試方法放入單獨的測試類中。

**示例:**例如,我有幾個只能由用戶 1 和用戶 2 執行的測試,還有幾個只能由用戶 3 和用戶 4 執行的測試。因此,第一組測試進行了進入測試 class 1 和第二組測試 - 進入測試 class 2。

目前我正在為測試 class 中的每個方法使用 DataRows。它有效,但它似乎是一個成熟且低效的解決方案。 在這種情況下,我會為同一用戶的每個測試登錄。 我想要的是在 class1 user1 中登錄一次,然后在 class 中進行所有測試,而無需在每個測試方法中重復登錄部分。 然后 user2 登錄一次並進行所有測試。 .. 其他測試類也一樣。

[TestClass1]
public class TestClass1
{
   [DataTestMethod1]
   [DataRow("UserType1", "Selenium_pssw1")]
   [DataRow("UserType2", "Selenium_pssw2")]
   public void Test1 (string usernameString, string passwordString)
   {
   //do smth and assert smth
   }

   [DataTestMethod2]
   [DataRow("UserType1", "Selenium_pssw1")]
   [DataRow("UserType2", "Selenium_pssw2")]
   public void Test2 (string usernameString, string passwordString)
   {
   //do smth and assert smth
   }
}

TestClass2 也將包含幾個測試方法,但針對不同的用戶類型,例如僅針對 UserType1 和 UserType4。

是否有可能在測試級別使用數據源 class 而不是單一測試方法?

PS:我很抱歉我的英語和編程上的天真。 我剛剛開始這條路:)而且我確實在谷歌上搜索了很多,試圖在網上找到答案。 也許,我只是不知道該問什么......

查看 MSTest 的注釋。 您可以使用[ClassInitialize]注釋登錄,然后運行所有測試。 此外,您還需要為關閉 webdriver 的方法添加合適的注釋,以便它不會在每次測試后關閉,而是僅在運行 class 中的所有測試后才關閉。

還要熟悉 inheritance。您可以設置一個BaseTest class,它使用特定注釋對驅動程序進行初始化和拆卸。

暫無
暫無

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

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