C# 异常、selenium测试、c sharp绑定后恢复
首先,我必须声明,我是Selenium测试框架的新手,在编程方面不是很有经验。 我需要做客户端web测试,我认为selenium是一个不错的选择,我正在尝试设计一个架构。目前我正在努力从一次异常中恢复过来 因此,如果我的主方法出现任何错误,我将订阅一个事件:C# 异常、selenium测试、c sharp绑定后恢复,c#,selenium,C#,Selenium,首先,我必须声明,我是Selenium测试框架的新手,在编程方面不是很有经验。 我需要做客户端web测试,我认为selenium是一个不错的选择,我正在尝试设计一个架构。目前我正在努力从一次异常中恢复过来 因此,如果我的主方法出现任何错误,我将订阅一个事件: class Program { static void Main() { AppDomain.CurrentDomain.UnhandledException += ExceptionHandler.Curr
class Program
{
static void Main()
{
AppDomain.CurrentDomain.UnhandledException += ExceptionHandler.CurrentDomainOnUnhandledException;
var test = new Login.LoginPageTests();
test.DoLogin();
}
}
所以,如果抛出任何内容,它将记录该内容并返回baseURL
class ExceptionHandler
{
internal static void CurrentDomainOnUnhandledException(object sender, UnhandledExceptionEventArgs unhandledExceptionEventArgs)
{
var screenShot = TestHelpers.TakeScreenShot();
var stack = new StackTrace();
var callingMethod = stack.GetFrame(1).GetMethod().Name;
var e = (Exception)unhandledExceptionEventArgs.ExceptionObject;
Console.WriteLine("{0} : {1}\nscreenshot: {2}", callingMethod, e.Message, screenShot);
var driver = TestHelpers.Driver;
driver.Navigate().GoToUrl(TestHelpers.BaseUrl);
}
}
但现在,假设我在测试方法内部,并且抛出了异常,它仍然会使所有内容崩溃。为什么呢?如何继续运行下一个测试
编辑:
TestHelpers。驱动程序是:
internal class TestHelpers
{
internal const string BaseUrl = @"http://someUrl:8103";
private static IWebDriver _driver;
public static IWebDriver Driver
{
get
{
if (_driver == null)
{
_driver = new FirefoxDriver();
_driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
_driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(30));
}
return _driver;
}
}
据我所知,
Nunit
在这方面与Junit
的谷歌类似。你需要决定在异常情况下可以做什么,是否可以恢复,是否仍打算继续。另外,投资使用NUnit之类的工具,因为这样就可以分离测试了。在您的实例中,如果在登录过程中失败,您希望发生什么?我希望它会掉下来死去。如果我不能登录,我就不能做任何其他事情。是的,登录失败的情况很严重,但在其他情况下,我想转到主页并开始下一个测试。我在这里发现:AppDomain.UnhandledException。。。没有提供阻止应用程序关闭的方法。这些异常还设置了不可设置的IsTerminating标志。这是否意味着我必须抓住我能想到的所有例外情况?我想要的是一种不用try/catch就能处理所有问题的方法。