コンテキストディスプレイvstest.console.exeツールに
を使用してSeleniumテストを実行しているとき、私はセレンC#のテストを実行ジェンキンスジョブを設定されたURLをテストしました。 仕事を構築するとき、私は2つの値を提供する必要があります。
詳細な説明をテストする必要がありますURLを自分のソリューションを構築するために
- 枝を:
- 枝
- は、ユーザー(「TestedURL」)が提供するURLとのAppSettingsに保存されているURLを置き換える選択し、チェックアウト
- ビルドソリューション
のVisual Studio 2012に付属しているvstest.console.exeツール(、次のパスに存在するを実行します。 "マイクロソフトのVisual Studio 11.0 \ Common7 \ IDE \ CommonExtensions \マイクロソフト\ TestWindow」)を次のように
vstest.console.exe "C:\ MyProjectと\ binに\デバッグ\ myProject.Test.dll"
質問
適切なURLがテストされていることを確認します.Jenkins/vstest.console.exe出力のコンソール出力にURLを表示したいとします。
私は自分のコードをStackOverflowで異なる答えに従って修正しました。
URLは、Visual Studioから直接テスト出力に表示されます。残念ながら、vstest.console.exe/Jenkins出力にはまだテストURLは表示されません。
出力にURLを表示する方法(printMessageメソッドの変更方法)次のように
私のコードは次のとおりです。
using Microsoft.VisualStudio.TestTools.UnitTesting; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using System; using System.Configuration; using System.Diagnostics; namespace My.Test { [TestClass] public class MyTests { IWebDriver driver; string baseURL; [TestInitialize] public void Initialize() { System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); // URL is replaced by the value provided in Jenkins baseURL = config.AppSettings.Settings["TestedURL"].Value; driver = new ChromeDriver(); driver.Navigate().GoToUrl(baseURL); printMessage(string.Format("Tested URL: '{0}'", baseURL)); } private TestContext testContextInstance; /// <summary> ///Gets or sets the test context which provides ///information about and functionality for the current test run. ///</summary> public TestContext TestContext { get { return testContextInstance; } set { testContextInstance = value; } } private void printMessage(string message) { // Method should display custom message in both Visual Studio output and Jenkins (vstest.console.exe) output Trace.Listeners.Add(new TextWriterTraceListener(Console.Out)); Trace.Listeners.Add(new ConsoleTraceListener()); Trace.WriteLine(message); Debug.WriteLine(message); TestContext.WriteLine(message); Console.WriteLine(message); } } }