IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

Spring testing : transactionStatus ?


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 109
    Par défaut Spring testing : transactionStatus ?
    Bonjour à tous,


    Je désire faire du testing de mon code, et j'ai pour cela choisi la classe de spring :
    org.springframework.test.AbstractTransactionalSpringContextTests


    Lorsque que je lance mes tests, j'obtiens le warning suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    7 janv. 2008 14:59:04 org.springframework.test.AbstractDependencyInjectionSpringContextTests populateProtectedVariables
    ATTENTION: No bean with name 'transactionStatus'
    J'ai donc à tout hasard tenté d'ajouter ce Bean à ma config, sans bien comprendre son utilité :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean id="transactionStatus" class="org.springframework.transaction.support.SimpleTransactionStatus"/>
    Mais mes tests plantent (alors qu'ils passaient avant) sur la trace suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    java.lang.IllegalStateException: Cannot start new transaction without ending existing transaction: Invoke endTransaction() before startNewTransaction()
        at org.springframework.test.AbstractTransactionalSpringContextTests.startNewTransaction(AbstractTransactionalSpringContextTests.java:380)
        at org.springframework.test.AbstractTransactionalSpringContextTests.onSetUp(AbstractTransactionalSpringContextTests.java:217)
        at org.springframework.test.AbstractSingleSpringContextTests.setUp(AbstractSingleSpringContextTests.java:103)
        at junit.framework.TestCase.runBare(TestCase.java:132)
        at org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:76)
        at junit.framework.TestResult$1.protect(TestResult.java:110)
        at junit.framework.TestResult.runProtected(TestResult.java:128)
        at junit.framework.TestResult.run(TestResult.java:113)
        at junit.framework.TestCase.run(TestCase.java:124)
        at junit.framework.TestSuite.runTest(TestSuite.java:232)
        at junit.framework.TestSuite.run(TestSuite.java:227)
        at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:81)
        at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
        at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
    Quelqu'un aurait-il une idée de ce qui se passe, et à quoi peut bien servir tout cela?

    D'avance merci!

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 109
    Par défaut
    Personne ne peut m'aider?

  3. #3
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    Fais voir ta classe de test.

    Et ton fichier de configuration Spring ou tu fais ton injection.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Je viens justement de poster sur AbstractTransactionalSpringContextTests, qui hérite de AbstractDependencyInjectionSpringContextTests, mais qui gère aussi les transactions (fait un rollback auto à la fin de chaque test).

    Pour celui-ci, j'ai obtenu ta première erreur sur le transactionManager. Je l'ai donc ajouté comme toi dans mon contexte, et ensuite, pas de problème.

    Par contre, j'ai aussi obtenu ta seconde erreur en voulant récupérer un bean depuis une méthode de test.

    Tu n'as ajouté aucun code sur transactionStatus?

    Quelle version de Spring utilises-tu, as-tu regardé la doc? Donne-nous ton code et ta config stp...

    http://static.springframework.org/sp...textTests.html

Discussions similaires

  1. [Batch] Spring / Tests unitaires
    Par kilicool dans le forum Spring
    Réponses: 1
    Dernier message: 02/06/2010, 20h28
  2. spring test with jpa-mysql-hibernate.
    Par kossistus dans le forum Spring
    Réponses: 1
    Dernier message: 09/05/2008, 00h28
  3. [Integration] [Spring-mock] [Spring-test] AbstractTransactionalSpringContextTests
    Par Invité dans le forum Spring
    Réponses: 4
    Dernier message: 30/01/2008, 09h31
  4. [Spring Tests] - pb fichier de mapping
    Par spidetra dans le forum Spring
    Réponses: 1
    Dernier message: 01/12/2006, 16h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo