ContextAnzeige getestet URL wenn Selenium Test läuft Tool vstest.console.exe
ich konfiguriert Jenkins Job, die # Tests Selen C ausführt. Wenn ein Job bauen, muss ich zwei Werte liefern:
- Zweig meiner Lösung
- URL aufzubauen, die
Ausführliche Beschreibung
Jenkins führt die folgenden Schritte getestet werden soll :
- Kasse ausgewählte Zweigs
- URL in AppSettings mit URL durch den Benutzer ("TestedURL")
- build Lösung
- bereitgestellt gespeichert ersetzen
vstest.console.exe Werkzeug (die mit Visual Studio 2012, bestehen in folgendem Pfad kommt ausführen: " Microsoft Visual Studio 11.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow ") wie folgt:
vstest.console.exe "c: \ myProject \ bin \ Debug \ myProject.Test.dll"
Frage
Ich möchte sicherstellen, dass die richtige URL getestet wird: Ich möchte URL in der Konsolenausgabe der Ausgabe Jenkins/vstest.console.exe anzeigen.
Ich habe meinen Code nach verschiedenen Antworten auf StackOverflow geändert.
Die URL ist in der Testausgabe direkt in Visual Studio sichtbar. Leider sehe ich immer noch keine Test-URL in der vstest.console.exe/Jenkins-Ausgabe.
Wie URL in der Ausgabe anzeigen (wie printMessage-Methode ändern)?
Mein Code ist wie folgt:
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);
}
}
}