SORU
15 ŞUBAT 2012, ÇARŞAMBA


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
15 ŞUBAT 2012, ÇARŞAMBA


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Andrey Menshikov

    Andrey Mensh

    28 Ocak 2012
  • DominicFear

    DominicFear

    30 Kasım 2006
  • GoogleTechTalks

    GoogleTechTa

    15 AĞUSTOS 2007