2014-03-05 4 views
7

Ich habe nach dem in build.sbt:Wie starte ich JUnit 4.11 Testfälle mit SBT?

libraryDependencies += "com.novocode" % "junit-interface" % "0.10" % "test" 

libraryDependencies += "junit" % "junit" % "4.11" % "test" 

Ich bemerkte, dass junit-Schnittstelle 0,10 auf junit-dep 4.10 abhängt. Dies macht es unmöglich, Tests zu kompilieren, die assertNotEquals verwenden, das in junit 4.11 eingeführt wurde.

Wie starte ich JUnit 4.11 Testfälle mit SBT?

+0

Es sieht so aus als wäre es mit ** Junit-Schnittstelle 0.11-SNAPSHOT ** machbar, aber ich finde es nirgends veröffentlicht. –

+0

Welche SBT-Version verwenden Sie? Was passiert, wenn Sie die Abhängigkeit 'force() 'zu' junit' verwenden? –

+0

Ich benutze sbt 0.13.1. Ich habe 'force()' nicht versucht. Ich habe eine andere Problemumgehung gefunden. Ich werde jetzt die Antwort posten. –

Antwort

4

Verwenden junit-Schnittstelle 0.11 die Abhängigkeit von JUnit-dep zu vermeiden:

libraryDependencies += "junit" % "junit" % "4.12" % "test" 

libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % "test" 

UPDATE: JUnit-Schnittstelle 0.11 macht diese zuverlässig durch je nach junit statt junit-dep.

+1

Sich auf die Klassenpfadordnung zu verlassen, ist ein ziemlich zerbrechlicher Weg, damit umzugehen. –

+0

@JoeKearney stimme ich völlig zu. Es ist ein Workaround. Die Junit-Schnittstelle 0.11 scheint dies behoben zu haben. http://mvnrepository.com/artifact/com.novocode/junit-interface/0.11 –

8

Ich würde dies tun:

libraryDependencies ++= Seq(
    "junit" % "junit" % "4.11" % Test, 
    "com.novocode" % "junit-interface" % "0.11" % Test 
     exclude("junit", "junit-dep") 
) 

Durch den Ausschluss, was wir nicht wünschen, es nicht stören. Dies hängt nicht von der Bestellung ab.

Verwandte Themen