如何在 TestInitialize 中获取下一个测试方法的名称?我需要知道下一个测试方法的名称,因为我想在 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");
最佳答案
如果您使用 NUnit 框架来运行您的测试,您应该能够使用 TestContext对象以获取当前正在运行的测试的名称。使用类似的东西
TestContext.CurrentContext.Test.Name
我已经在测试的 TearDown 方法中使用它并取得了很好的效果,并且刚刚在 SetUp 方法中使用了它,这也很有效。
如果您不使用 NUnit,那么也许可以看看 TestContext类,这可能有一个您可以使用的属性,例如 TestName。
关于c# - Selenium:在初始化中获取实际测试方法的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37987852/