JUnit sınıfı kullanarak tek test Çalıştır komut satırı
Bana JUnit sınıfı komut satırı ve java kullanarak yalnızca tek bir test çalıştırmak için izin verecek bir yaklaşım bulmaya çalışıyorum.
Aşağıdaki kullanarak: sınıf testler bütünü çalıştırabilirsiniz
java -cp .... org.junit.runner.JUnitCore org.package.classname
Ben gerçekten ne yapmak istiyorum böyle bir şey
java -cp .... org.junit.runner.JUnitCore org.package.classname.method
ya da:
java -cp .... org.junit.runner.JUnitCore org.package.classname#method
Bu JUnit ek açıklamaları kullanarak yapmanın bir yolu olabilir, ama elle test derslerimi kaynağı (bu otomatikleştirme çalışırken) değiştirmemeyi tercih ederim fark ettim. Ayrıca Maven bunu yapmak için bir yol olabileceğini gördüm, ama mümkünse Maven bağlı olarak kaçınmak istiyorum.
Eğer bunu yapmak için herhangi bir yolu varsa ben de merak ediyorum?
Anahtar arıyorum noktaları:
- Yetenek JUnit test sınıfı tek bir test çalıştırmak için
- Çizgi (JUnit kullanarak) komut
- Test kaynağı değiştirme kaçının
- Ek araçları kullanmaktan kaçının
CEVAP
Bir özel, oldukça kolay JUnit koşucu iskelet yapabilirsiniz. İşte 8**: şeklinde tek bir test yöntemi çalışacak
import org.junit.runner.JUnitCore;
import org.junit.runner.Request;
import org.junit.runner.Result;
public class SingleJUnitTestRunner {
public static void main(String... args) throws ClassNotFoundException {
String[] classAndMethod = args[0].split("#");
Request request = Request.method(Class.forName(classAndMethod[0]),
classAndMethod[1]);
Result result = new JUnitCore().run(request);
System.exit(result.wasSuccessful() ? 0 : 1);
}
}
Bu şekilde çağırabilirsiniz:
> java -cp path/to/testclasses:path/to/junit-4.8.2.jar SingleJUnitTestRunner
com.mycompany.product.MyTest#testB
JUnit kaynağı hızlı bir bakış sonra JUnit bu doğal olarak desteklemeyen seninle aynı sonuca vardım. Bu hiç IDEs tüm diğer eylemler arasında imleç altında test yöntemi çalıştırmak için izin veren özel JUnit entegrasyon beri benim için bir sorun olmuştur. Hiç komut satırından JUnit testleri doğrudan çalıştırmak; her zaman IDE veya oluşturma aracı (Ant, Maven) hallederim ben. Özellikle varsayılan CLİ beri giriş noktası (JUnitCore) herhangi bir sonuç çıktı sınama hatası sıfır olmayan çıkış kodu(ler) den başka üreten yok.
Bash kabuk komut getopts uzun kullanar...
Ve nasıl bir dosyayı komut satırı orta...
Nasıl bir metin dosyasının ilk satırı ...
Nasıl Mac OS X için güzel bir DMG komu...
Nasıl komut satırından JUnit test duru...