[英]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.