Ich verwende Microsoft WebTest und möchte in der Lage sein, etwas Ähnliches wie NUnit Assert.Fail()
zu tun. Das beste, was ich mir ausgedacht habe, ist throw new webTestException()
, aber dies zeigt in den Testergebnissen als Error
eher als Failure
.Wie kann ich einen WebTest nicht bestehen?
Anders als auf die WebTest
reflektieren, um eine private Member-Variable, um den Fehler anzuzeigen, gibt es etwas, das ich verpasst habe?
EDIT: Ich habe auch die Assert.Fail()
Methode verwendet, aber dies zeigt immer noch als Fehler und nicht als Fehler bei der Verwendung von WebTest, und die Outcome
Eigenschaft ist schreibgeschützt (hat keine öffentlichen Setter).
EDIT: Nun, jetzt bin ich wirklich ratlos. Ich habe Reflection verwendet, um die Outcome
-Eigenschaft auf Failed zu setzen, aber der Test ist immer noch passiert!
Hier ist der Code, der die Oucome zu ausgefallen setzt:
public static class WebTestExtensions
{
public static void Fail(this WebTest test)
{
var method = test.GetType().GetMethod("set_Outcome", BindingFlags.NonPublic | BindingFlags.Instance);
method.Invoke(test, new object[] {Outcome.Fail});
}
}
und hier ist der Code, den ich nicht bin versucht: zu Oucome.Fail
public override IEnumerator<WebTestRequest> GetRequestEnumerator()
{
this.Fail();
yield return new WebTestRequest("http://google.com");
}
Outcome
gesetzt zu werden, aber anscheinend die WebTest Rahmen verwendet dies nicht wirklich, um Test-Bestanden/Nicht bestanden-Ergebnisse zu bestimmen.
klarer hätte ... ich hatte habe schon beides versucht. (bearbeitete Frage, um das widerzuspiegeln) – craigb
[Microsoft.VisualStudio.QualityTools.WebTestFramework, Version = 9.0.0.0] Microsoft.VisualStudio.TestTools.WebTesting.WebTest.set_Outcome (Microsoft.VisualStudio.TestTools.WebTesting.Outcome-Wert) ist öffentlich –
Not nach der DLL, die ich benutze. Oucome ist ein öffentlicher Getter, aber es gibt keinen öffentlichen Setter. Ich habe Reflektion verwendet, um das Set_Outcome (das privat ist) zu berechnen, aber es hat immer noch keine Auswirkung auf das Testergebnis (d. H. Es schlägt nicht fehl) – craigb