2014-09-01 2 views
1

순차적으로 nunit/C# 테스트를 실행하고 싶습니다. browserstack에서 webdriver로 테스트하고 있습니다. 필자가해야 할 일은 여러 플랫폼과 여러 장치를 사용하여 테스트를 순서대로 실행하는 것입니다. 나는 TestFixture ("android", "Android", "LG Nexus 4") [TestAmports ("android", "Samsung Galaxy S III")]와 나의 클래스를위한 생성자로 시도했다. 그러나 그것은 작동하지 않았다. 여기 좀 도와 줄 수 있니?nunit에서 순차적으로 테스트 실행

[TestFixture("android", "Android", "LG Nexus 4")] 
[TestFixture("android", "Samsung Galaxy S III")] 
public class Multi 
{ 
    private IWebDriver driver; 
    private string _browsername; 
    private string _platform; 
    private string _device; 

    public void Multi(string browsername, string platform, string device) 
    { 
     _browsername = browsername; 
     _platform = platform; 
     _device = device; 

    } 

    [SetUp] 
    public void Init() 
    { 
     DesiredCapabilities capability = new DesiredCapabilities(); 

     capability.SetCapability("browserstack.user", "test"); 
     capability.SetCapability("browserstack.key", "test"); 
     capability.SetCapability("browserstack.local", "true"); 

     capability.SetCapability("browserName", _browsername); 
     capability.SetCapability("platform", _platform); 

     capability.SetCapability("device", _device); 

     driver = new RemoteWebDriver(
      new Uri("http://hub.browserstack.com/wd/hub/"), capability 
     ); 
     driver.Navigate().GoToUrl("http://sunet.se"); 



    } 

    [Test] 
    public void StartTest() 
    { 
     Thread.Sleep(5000); 
     driver.FindElement(By.XPath("/html/body/div[2]/div/div/div[1]/div[1]/div[2]/div/div[1]/div/div/div[2]/div/a")).Click(); 

     } 

    } 

    [TestFixtureTearDown] 
    public void Cleanup() 
    { 
     driver.Quit(); 
    } 
} 

답변

0

본인이 직접 시도하지는 않았지만 NUnit 시퀀서라고하는 라이브러리가 있습니다.

https://www.ingenuityworking.com/knowledge/w/knowledgebase/1354.nunit-sequencer-tool-to-sequence-run-ordered-nunit-tests-and-fixtures-by-setting-attributes.aspx

그것은을 설정하는 설정의 약간처럼 보인다, 그러나 당신이 당신이 그들을 실행하려는 순서대로 테스트의 이름을 지정 속성을 테스트 설비를 장식 할 수 있습니다.

예 :

[TestFixture] 
[SequencedTestFixture("SubtractTest", "AddTest")] 
public class ArithmeticTests1 

이 테스트를 실행하는 것은 AddTest라는 테스트 한 다음, 처음 SubtractTest했다.

단위 테스트는 서로 완전히 독립적으로 실행되기 때문에 일반적으로 비논리적 순서로 실행됩니다 (NUnit은 알파벳 순서로 표시됨).

실제로 내가 언급 한 라이브러리를 사용하지 않으려는 경우, 0001_DoThisThingFirst0002_DoSomethingElse 등의 테스트 픽스처 이름을 빨리 수정하면 NUnit에서 사전 순으로이를 실행합니다. 이것은 유지 관리의 골치 거리가 될 수 있습니다.

+0

좋아, 글쎄요, 중복 코드가 붙어있는 것처럼 보입니다. 하지만 지금은 괜찮습니다. 대답 해줘서 고마워요. – user3624378

1

Multi 클래스에는 TestFixture의 첫 번째 서명 (3 개 문자열)에 대한 생성자가 있지만 두 번째 서명 (두 개의 문자열)에는 생성자가 없습니다. NUnit 버전에 따라 문제를 설명 할 수 있습니다. 올바른 생성자를 추가하거나 두 번째 TestFixture 서명을 변경하십시오.

관련 문제