Domanda

Eclipse 3.7.2

Ho appena implementato un @Rule in alcuni test di Junit 4, ma quando li corri in Eclipse non vengono chiamati i metodi MethodRule.È come il test del test Eclipse non riconosce le implementazioni @Rule e non fa nulla di speciale con i campi annotati con @Rule.

Ho anche provato a utilizzare un metodo "standard" come org.junit.rules.TestName ma non funziona correttamente (i nomi del test non sono popolati nell'istanza).Anche il test di esempio nel Javadoc di TestName fallisce quando viene eseguito in Eclipse.

C'è qualche trucco?Eclipse semplicemente non supporta Junit Regole ?

È stato utile?

Soluzione

Si scopre che qualcuno aveva incluso un barattolo apparentemente "richiesto" sul classpath di runtime del progetto in questione.Quel barattolo incorpora, tra le altre cose, non dovrebbe, i pacchetti di Junit!Quindi c'è questo barattolo, chiamato qualcosa di innocuo come our_runtime_library.jar che ha un codice specifico di app insieme a alcune versioni sconosciute (ma vecchie) di Junit, primavera, e chissà cos'altro.Quando si esegue il progetto come test unitario, Eclipse stava raccogliendo il junit in quel barattolo invece della sua versione (come dovrebbe, le librerie specifiche del progetto prendono sempre la precedenza), la versione (Eclipse) che il progetto è costruito contro. .

Che casino;Ora spento per capire chi merita 50 frusta per questo.

Altri suggerimenti

Dovrebbe funzionare, almeno nella mia eclissi (in Embedded Junit 4.8). Quindi potresti mostrare il tuo codice.

Ulteriori, Javadoc dice: Note that MethodRule is now deprecated, you should be using TestRule instead.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top