2017-03-07 44 views
0

我是新來的自動化測試(編程新手),並且一直在使用Visual Studio和MS Test自學C#和硒。我試圖獲取測試名稱(從測試方法定義),所以我可以將它插入到我的Browserstack/CBT比較和審查測試的配置類中。MS測試,嘗試將我的測試名稱插入測試功能

我希望能夠來定義是一樣的東西

測試名=測試(從測試方法)的名稱,這樣我就可以插入到我的驅動程序文件

IWebDriver driver; 

      DesiredCapabilities caps = new DesiredCapabilities(); 

      caps.SetCapability("name", Testname); 

讀這個網上,我知道MS Test中有一個TestName功能,但我無法弄清楚如何將它用於我的目的。

任何幫助非常感謝高興地提供額外的信息,如果需要的話。

問候

理查德

+0

你使用的能力是正確的,而在BrowserStack測試。我明白這裏唯一的問題是檢索測試方法名稱。我查了幾個在線資源並創建了這個腳本 - https://gist.github.com/ashwingonsalves/4a139fc1ac9824eff07b3898d199c3f4。您可能需要處理這個問題。 –

+0

沒有發佈我想要的方式,所以會發布爲答​​案。 – Dazed

回答

0

的更簡單的方式來獲得在MS測試的測試方法的名稱是通過使用的TestContext屬性:

首先,你的測試類中添加以下行(如果不存在的話) :

public TestContext TestContext { get; set; } 

MS-Test會將此屬性設置爲與當前測試相關的TestContext對象。

然後你可以使用:

string testName = TestContext.TestName; 
... 
caps.SetCapability("name", testname); 
0

我不得不做Saucelabs類似的東西。在我的設置中,我添加了以下內容。您可能需要稍微更改一下,以支持您的框架。我使用SpecFlow。

所以這一點的全部是你傳遞一個TestName但TestName尚不可用。

這是一個BeforeScenario掛鉤,它將啓動驅動程序,並且我傳遞測試名稱即「標題」。你需要找出測試名是可用的,然後傳遞該值。

var Title = ScenarioContext.Current.ScenarioInfo.Title; 
Browser.StartSauceDriver(Title); 

然後在StartSauceDriver我有標題,我可以使用。

public static void StartSauceDriver(string Title) 
    { 
     { 

       DesiredCapabilities caps = new DesiredCapabilities(); 
       caps.SetCapability(CapabilityType.BrowserName, System.Environment.GetEnvironmentVariable("SELENIUM_BROWSER")); 
       caps.SetCapability(CapabilityType.Version, System.Environment.GetEnvironmentVariable("SELENIUM_VERSION")); 
       caps.SetCapability(CapabilityType.Platform, System.Environment.GetEnvironmentVariable("SELENIUM_PLATFORM")); 
       caps.SetCapability("name", Title); 
       _webDriver = new RemoteWebDriver(new Uri("http://ondemand.saucelabs.com/wd/hub"), caps, TimeSpan.FromSeconds(600)); 
       _wait = new WebDriverWait(_webDriver, TimeSpan.FromSeconds(600)); 

     } 
+0

非常感謝你的答覆,你已經能夠設置這個,讓它工作:) –

+0

很高興它的工作。 – Dazed