MS测试,试图将我的测试名称插入测试功能

时间:2017-03-07 10:55:04

标签: c# visual-studio testing mstest browserstack

我是自动化测试(新编码)的新手,并使用Visual Studio和MS Test自学C#和selenium。我正在尝试获取测试名称(根据测试方法定义),因此我可以将其插入到我的Browserstack / CBT比较和审查测试的配置类中。

我希望能够定义的是

Testname =测试名称(来自测试方法),然后我可以将其插入到我的驱动程序文件中

IWebDriver driver;

DesiredCapabilities caps = new DesiredCapabilities();

caps.SetCapability("name", Testname);

在线阅读我知道MS Test中有一个TestName功能但是我无法弄清楚如何将它用于我的目的。

如果需要,任何帮助都非常感谢乐意提供更多信息。

问候

理查德

2 个答案:

答案 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));

        }