Par exemple, lorsque ces tests sont exécutés, je veux vous assurer que update strong>: pourquoi Est-ce que je veux faire ça? Ma pensée est que l'échec précoce de certains tests (ceux qui testent les méthodes plus simples et plus fondamentales) faciliteront la trajire des problèmes dans le système. Par exemple, le succès de la barre test_fizz code> fonctionne toujours en premier.
bar code> sur
fizz code> fonctionne correctement. Si
fizz code> est cassé, je veux savoir que tout de suite de la chauve-souris, car il n'est pas nécessaire de s'inquiéter de
bar code>, qui échouera également, mais avec une sortie beaucoup plus compliquée dans les résultats du test. P> p>
3 Réponses :
Les tests dans la même classe de test sont appelés dans l'ordre dans lequel elles sont définies. Cependant, les classes de test sont exécutées par ordre alphabétique par nom de classe. P>
Si vous avez vraiment besoin de contrôle fin, définissez les méthodes Fizz et Bar avec un préfixe autre que EDIT:
Il semble que des cadres de test d'unités différentes se comportent différemment. Pour Junit à Eclipse, il semble que les cas de test fonctionnent dans un ordre aléatoire: Unité de commande Tests dans la vue Junit de Eclipse P> Test _ code> et à l'intérieur d'un
test_fizz_bar code> méthode, appelez-les dans l'ordre et la barre d'exécution Conditionnellement sur le succès de la fabrication de Fizz. P>
Merci pour la suggestion. Dans le code i posté, les tests sont pas b> exécutés dans l'ordre dans lequel elles sont définies; plutôt, test_bar code> exécute en premier.
Dans mon expérience, les tests dans la même classe d'essai sont invoqués dans l'ordre alphabétique.
@Jonathanjulien: En effet. Où est le -10 quand vous en avez besoin?
Nomez les tests que vous souhaitez exécuter d'abord avec un nom alphabétique de tri bas.
def test_AAA_fizz
Test "01) devrait exécuter le premier test" Do ... fin code>
Vous pouvez définir la commande de test avec Exemple: p> test :: unité :: TestCase # test_order =: défini code>
Loaded suite test
Started
:a
.:b
.:c
.
Pourquoi veux-tu faire cela? J'espère certainement que l'ordre de vos tests n'affecte pas les résultats des tests. Si c'est le cas, vous faites quelque chose de terriblement faux.
Je suis d'accord avec Gotgenes. Je vois votre mise à jour, mais si la barre s'appuie sur Fizz, vous devez tester la FIZZ, puis saisissez les résultats de Fizz lors de la mesure de test pour éviter la contamination croisée plutôt que de veiller à ce que vos tests fonctionnent dans un ordre particulier. Si la Fizz teste une fonctionnalité de niveau plus élevée, vous devez peut-être en faire un test fonctionnel.
Avoir une suite d'affirmations ordonnées conviennent bien, mais ce n'est plus un test unitaire. Son fonctionnel / intégration / comportementale (tout ce que vous voulez l'appeler ... c'est tout simplement pareil). Vous devriez faire avec un outil conçu pour cela comme RSPEC
Connecté: Stackoverflow.com/Questtions/1376267/...