2010-05-28 12 views
9

Dans l'un de mes projets, j'ai besoin de collaborer avec plusieurs systèmes backend. Certains d'entre eux manquent un peu de documentation, et en partie j'ai donc du code de test qui interagit avec certains serveurs de test juste pour voir que tout fonctionne comme prévu. Cependant, l'accès à ces serveurs est assez lent, et par conséquent je ne veux pas exécuter ces tests chaque fois que j'exécute ma suite de tests.Comment passer certains tests avec Test :: Unit

Ma question est comment faire face à une situation où vous voulez passer certains tests. Actuellement, j'utilise une variable d'environnement 'BACKEND_TEST' et une instruction conditionnelle qui vérifie si la variable est définie pour chaque test que je souhaite ignorer. Mais parfois, je voudrais passer tous les tests dans un fichier de test sans avoir à ajouter une ligne supplémentaire au début de chaque test.

Les tests qui doivent interagir avec les serveurs de test ne sont pas nombreux, car j'utilise flexmock dans d'autres situations. Cependant, vous ne pouvez pas vous moquer de la réalité.

Comme vous pouvez le voir dans le titre de cette question, j'utilise Test :: Unit. De plus, si cela fait une différence, le projet est un projet Rails.

Répondre

8

New Features Of Test Unit 2.x suggère que test-unit 2.x (la version gem, pas la bibliothèque standard ruby ​​1.8) vous permet d'omettre les tests.

+1

Merci! J'ai effectivement lu la diapositive avant, mais je n'ai jamais regardé si 2.x avait été publié. Il a et je vais regarder de plus près. –

+1

Notez que l'omission des tests échoue. Si vous ne voulez pas un tas de tests échoués, vous pouvez essayer le skip de Minitest ou simplement ajouter une déclaration de retour sur une condition en haut de votre test. – coberlin

+0

@coberlin - Remarque: Omit déclenche une exception UNIQUEMENT si aucun bloc n'est donné. Vous pouvez simplement passer le corps de votre test comme le bloc. –

Questions connexes