2017-12-13 2 views
0

Wenn versucht wird, einen Test von einer anderen Klasse als der Implementierung aufzurufen, wird das Parallelizable Attribut nicht ausgeführt, stattdessen werden die Methoden nur nacheinander ausgeführt (Alltest_2() und Alltest_1())). Gibt es eine Möglichkeit, sie aufzurufen, so dass sie parallel ausgeführt werden?
Hier ist ein Codebeispiel:NUnit: wie Test von einer anderen Klasse mit Parallelizable aufgerufen wird

public class AO_Alarms_4 : AO_Alarms_3 
{ 

    [SetUp] 
    public void DefaultSetUp(){ } 


    [Test] 
    public void Alltest_Clases() 
    { 
     Alltest_2(); 
     Alltest_1(); 
    } 

    [TearDown] 

    public void DefaultTearDown() { } 
} 

[TestFixture] 
[Parallelizable] 
public class AO_Alarms_3 : AO_Alarms_2 
{ 
    public WebDriverFactory driver = new WebDriverFactory(Utils.Browser); 

    [SetUp] 
    public void login_2() 
    { 
     //code 
    } 

    [Test] 
    [Parallelizable] 
    public void Alltest_2() 
    { 
     test_2(); 
    } 

    public void test_2() 
    { 
     //code 
    } 

    [TearDown] 

    public void teardown_2() 
    { 
     //code 
    } 
} 

[TestFixture] 
[Parallelizable] 
public class AO_Alarms_2 
{ 
    public WebDriverFactory driver = new WebDriverFactory(Utils.Browser); 

    [SetUp] 
    public void login_1() 
    { 
     //code 
    } 

    [Test] 
    [Parallelizable] 
    public void Alltest_1() 
    { 
     test1_1(); 
     test1_2(); 
    } 

    [Test] 
    public void test1_1() 
    { 
    //code 
    } 
    [Test] 
    public void test1_2() 
    { 
    //code 
    } 

    [TearDown] 
    public void teardown_1() 
    { 
     //code 
    } 
} 
+0

Ihr Codebeispiel ist nicht sehr klar - ist die Vererbung wichtig für die Frage? Welche Beziehungen bestehen zwischen den verschiedenen Testklassen und Methoden? Vielleicht können Sie einen aussagekräftigeren Namen geben? Unerhebliche Informationen auslassen (z. B. SetUp und TearDown)? –

Antwort

1

Sie können einfach Tests selbst nicht anrufen und erwarten, um Tests mit einer der normalen NUnit Verhalten zu bekommen. Zum Beispiel weiß NUnit, was zu tun ist, wenn es ruft einen Test mit [Parallelizable] darauf - und was es tut, ist ziemlich kompliziert. Ihr eigener Anruf ruft einfach die Methode auf, die Sie geschrieben haben.

Es gibt nichts, was Sie daran hindert, allgemeine Methoden innerhalb eines bestimmten Tests aufzurufen, aber die Tests selbst müssen von NUnit aufgerufen werden.

Wenn Sie eine andere Frage stellen oder eine andere Frage stellen können, was Sie hier eigentlich erreichen möchten, können wir Ihnen wahrscheinlich einen Ratschlag zu Alternativen geben.

+0

Danke für die Antwort! Du hast recht, ich habe viele Versuche unternommen, Tests ohne Test Explorer durchzuführen, aber es gibt noch keine Probleme damit, weil ich mit einigen Kollegen gesprochen habe und ich die Tests nicht wie bisher aufrufen muss. Danke für die Information! – user3732692

Verwandte Themen