2017-03-07 51 views
0

我是新来的自动化测试(编程新手),并且一直在使用Visual Studio和MS Test自学C#和硒。我试图获取测试名称(从测试方法定义),所以我可以将它插入到我的Browserstack/CBT比较和审查测试的配置类中。MS测试,尝试将我的测试名称插入测试功能

我希望能够来定义是一样的东西

测试名=测试(从测试方法)的名称,这样我就可以插入到我的驱动程序文件

IWebDriver driver; 

      DesiredCapabilities caps = new DesiredCapabilities(); 

      caps.SetCapability("name", Testname); 

读这个网上,我知道MS Test中有一个TestName功能,但我无法弄清楚如何将它用于我的目的。

任何帮助非常感谢高兴地提供额外的信息,如果需要的话。

问候

理查德

+0

你使用的能力是正确的,而在BrowserStack测试。我明白这里唯一的问题是检索测试方法名称。我查了几个在线资源并创建了这个脚本 - https://gist.github.com/ashwingonsalves/4a139fc1ac9824eff07b3898d199c3f4。您可能需要处理这个问题。 –

+0

没有发布我想要的方式,所以会发布为答​​案。 – Dazed

回答

0

的更简单的方式来获得在MS测试的测试方法的名称是通过使用的TestContext属性:

首先,你的测试类中添加以下行(如果不存在的话) :

public TestContext TestContext { get; set; } 

MS-Test会将此属性设置为与当前测试相关的TestContext对象。

然后你可以使用:

string testName = TestContext.TestName; 
... 
caps.SetCapability("name", testname); 
0

我不得不做Saucelabs类似的东西。在我的设置中,我添加了以下内容。您可能需要稍微更改一下,以支持您的框架。我使用SpecFlow。

所以这一点的全部是你传递一个TestName但TestName尚不可用。

这是一个BeforeScenario挂钩,它将启动驱动程序,并且我传递测试名称即“标题”。你需要找出测试名是可用的,然后传递该值。

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

     } 
+0

非常感谢你的答复,你已经能够设置这个,让它工作:) –

+0

很高兴它的工作。 – Dazed