我是自动化测试(新编码)的新手,并使用Visual Studio和MS Test自学C#和selenium。我正在尝试获取测试名称(根据测试方法定义),因此我可以将其插入到我的Browserstack / CBT比较和审查测试的配置类中。
我希望能够定义的是
Testname =测试名称(来自测试方法),然后我可以将其插入到我的驱动程序文件中
IWebDriver driver;
DesiredCapabilities caps = new DesiredCapabilities();
caps.SetCapability("name", Testname);
在线阅读我知道MS Test中有一个TestName功能但是我无法弄清楚如何将它用于我的目的。
如果需要,任何帮助都非常感谢乐意提供更多信息。
问候
理查德
答案 0 :(得分:1)
在MS Test中获取测试方法名称的更简单方法是使用 TestContext 属性:
首先,在测试类中添加以下行(如果尚不存在):
LoadedEvent
MS-Test会将此属性设置为与当前测试相关的TestContext对象。
然后你可以使用:
public TestContext TestContext { get; set; }
答案 1 :(得分:0)
我必须做一些与Saucelabs类似的事情。在我的设置中,我添加了以下内容。您可能需要稍微更改一下以支持您的框架。我使用SpecFlow。
所以这一点的重点在于你传递了一个TestName,但TestName还没有。
这是一个启动驱动程序的BeforeScenario挂钩,我传递的是测试名称#34; Title"。您需要找出TestName可用的位置,然后将该值传递给。
var Title = ScenarioContext.Current.ScenarioInfo.Title;
Browser.StartSauceDriver(Title);
然后在StartSauceDriver中我有我可以使用的标题。
public static void StartSauceDriver(string Title)
{
{
DesiredCapabilities caps = new DesiredCapabilities();
caps.SetCapability(CapabilityType.BrowserName, System.Environment.GetEnvironmentVariable("SELENIUM_BROWSER"));
caps.SetCapability(CapabilityType.Version, System.Environment.GetEnvironmentVariable("SELENIUM_VERSION"));
caps.SetCapability(CapabilityType.Platform, System.Environment.GetEnvironmentVariable("SELENIUM_PLATFORM"));
caps.SetCapability("name", Title);
_webDriver = new RemoteWebDriver(new Uri("http://ondemand.saucelabs.com/wd/hub"), caps, TimeSpan.FromSeconds(600));
_wait = new WebDriverWait(_webDriver, TimeSpan.FromSeconds(600));
}