如何在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");
答案 0 :(得分:2)
如果您正在使用NUnit Framework来运行测试,那么您应该能够使用TestContext对象来获取当前运行的测试名称。使用像
这样的东西TestContext.CurrentContext.Test.Name
我在TearDown测试方法中使用它非常有效,并且刚刚在SetUp方法中使用它,它也起作用。
如果您不使用NUnit,那么可以查看TestContext类,这可能有您可以使用的属性,例如TestName。