2017-03-07 17 views
0

私はVisual StudioとMS Testを使ってC#とセレンを教えていました。私は私のBrowserstack/CBTの比較とレビューのテストのための設定クラスにこれを挿入することができるようにテスト名(テストメソッドから定義)を取得しようとしています。私が知っている私が定義することができるようにしたいどのような私のテスト名をテストに挿入しようとしています。能力

は、(試験法からの)テストの

テスト名=名前のようなものですので、私はその後、オンラインで読み、私のドライバファイルに

IWebDriver driver; 

      DesiredCapabilities caps = new DesiredCapabilities(); 

      caps.SetCapability("name", Testname); 

これを挿入することができますMS TestにはTestNameの機能がありますが、私の目的のためにそれをどのように活用するかはわかりません。

必要に応じて追加情報を提供していただけると幸いです。私はSaucelabsと似た何かをしなければならなかった

よろしく

リチャード

+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

。私のセットアップでは、以下を追加しました。フレームワークをサポートするには、これを少し変更する必要があります。私はSpecFlowを使用します。

これは、TestNameを渡しているにもかかわらず、TestNameはまだ使用できません。

これはドライバを起動するBeforeScenarioフックで、テスト名は別名「Title」です。あなたは、テスト名が利用可能な場所を見つけると、その後にその値を渡す必要があります。

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

あなたの2人のあなたの答えに感謝してこれを設定し、それを稼働させることができました:) –

+0

うれしいことです。 – Dazed

関連する問題