Selenium:在初始化中获取实际测试方法的名称

时间:2016-06-23 09:40:30

标签: c# selenium testing

如何在TestInitialize中获取下一个Test Method的名称?我需要知道下一个测试方法的名称,因为我想在BrowserStack中设置实际测试方法的“名称”。 这是我的代码:

        [TestInitialize]
        public void BeforeAll()
        {
            DesiredCapabilities bsCapabilities = new DesiredCapabilities();
            bsCapabilities.SetCapability("name", /*name*/);
            bsCapabilities.SetCapability("os", "Windows");
            bsCapabilities.SetCapability("os_version", "8");
            bsCapabilities.SetCapability("browser", "Firefox");
            bsCapabilities.SetCapability("browser_version", "33.0");
            bsCapabilities.SetCapability("resolution", "1024x768");               
            DataCollection.Driver = new RemoteWebDriver(
                new Uri("http://hub.browserstack.com/wd/hub/"), bsCapabilities
            );            
            DataCollection.Driver.Navigate().GoToUrl(root_site);
            DataCollection.Driver.Manage().Window.Maximize();
        }

        [TestMethod]           
        public void ValidLoginTest()
        {                            
            LoginPage LP = new LoginPage();           
            LP.FillForm("agileway", "testwise");
            Assert.IsTrue(Get.Element(FindBy.Id, "flash_notice").Displayed);
        }

在初始化中,我想要第一行:

bsCapabilities.SetCapability("name", "ValidLoginTest");

1 个答案:

答案 0 :(得分:2)

如果您正在使用NUnit Framework来运行测试,那么您应该能够使用TestContext对象来获取当前运行的测试名称。使用像

这样的东西
TestContext.CurrentContext.Test.Name

我在TearDown测试方法中使用它非常有效,并且刚刚在SetUp方法中使用它,它也起作用。

如果您不使用NUnit,那么可以查看TestContext类,这可能有您可以使用的属性,例如TestName。