2010-05-20 13 views
1

J'ai un test de Nunit qui utilise le sélénium RC pour effectuer des tests sur notre interface utilisateur. Je veux exécuter les tests sur 2 serveurs différents, ce qui signifie avoir l'appel à selenium.open() avec 2 serveurs différents. Cependant, je ne veux pas avoir 2 suites de test Nunit différentes qui font la même chose mais contre des serveurs différents. J'ai besoin d'un moyen de passer des paramètres de Nant ou du programme du pilote Nunit pour spécifier le serveur contre lequel tester.Comment est-ce que je fais exécuter des tests de sélénium par Nunit sur différents serveurs?

Y at-il de toute façon de le faire?

+0

J'ai pensé à un moyen de contourner cela, quelqu'un pourrait-il me donner de meilleures solutions? Fondamentalement, j'ai différentes versions du fichier app.config pour différents serveurs. Dans le script de construction Nant, je copie différentes versions du fichier dans app.config (par exemple app.test.config -> app.config). Dans le fichier app.config, j'ai l'URL de base différente à utiliser dans le test nunit en tant qu'application. – jaffa

Répondre

0

Si vous cherchez à exécuter les mêmes tests sur les deux serveurs, la dernière version de NUnit prend en charge les tests qui prennent des paramètres. Vous pouvez inclure un argument de serveur à vos tests comme celui-ci:

[TestFixture] 
public class MyTestFixture 
{ 
    public string[] Servers = new string[] { "server1.address", "server2.address" }; 

    [Test] 
    public void SomeTest([ValueSource("Servers")] server) 
    { 
     ISelenium selenium = new DefaultSelenium(server, 4444, "*firefox", "http://localhost"); 
     //rest of test 
    } 
} 

Lorsque NUnit exécute, ce test sera exécuté deux fois: une fois avec le paramètre le « server1.address » et une fois avec le paramètre « server2.address ». Vous pouvez lire les tests ValueSource ici: http://www.nunit.org/index.php?p=valueSource&r=2.5.5