Je tente d'écrire une grosse classe de test. J'utilise Junit, Hibernate et TopLink et la base de données H2. Avant cela, j'ai utilisé EJB3Unit (y compris Hibernate et H2).Les tests Junit échouent randomisés lors de l'utilisation de la base de données et du gestionnaire d'entités
Ma classe de test dispose de 57 méthodes de test. Si je fais tous les tests à la fois randomisés, un ou plusieurs tests échouent. Si je cours chaque test seul, je n'obtiens aucune erreur.
Quelqu'un at-il une idée de ce qui ne va pas? Et comment je peux empêcher cela?
- Pour chaque méthode de test, je crée une nouvelle base de données en mémoire avec un nom différent.
- Je crée une instance entitymanagarfactory et entitymanagar.
- J'ai désactivé la mise en cache de second niveau.
- Je crée toute la table via le script (aucune erreur ne se produit donc la base de données est vraiment fraîche).
- Je fais quelques actions db et test.
- Je vide la session et em.
- je laisse tomber tout objet dans ma base de données en mémoire
- je fermer la base de données
- je ferme em et fem.
Dois-je en faire plus?
Merci beaucoup ...
Est-il possible que vous tiriez des objets (comme des connexions) d'un pool (disons dans la configuration d'hibernation) et que les réponses ne soient pas entièrement validées? Est-il possible que votre configuration de test ou la méthode de démontage ne soit pas correctement annotée et ne s'exécute pas avant chaque instance? Avez-vous vraiment besoin de recréer une base de données pour chaque invocation de méthode? –
Est-ce que 'tout à la fois' signifie exécution parallèle ou exécution séquentielle dans une suite de tests? –
Je voulais dire l'exécution séquentielle avec «tout à la fois». – marabol