2012-06-08 41 views
11

Intellij'de çok modüllü bir projem var ve bir alt modüldeki test kaynaklarında başka bir yerde kullanmak istediğim bir grup salatalık fikstür var. alt modül. Diğer modülü eklerseniz, bağımlılık olarak normal çıkış dizini, junit sınıf yoluna eklenir, ancak test çıktısı alınmaz.Intellij'de bir modülün başka bir modülün testlerine bağlı olması mümkündür

intellij'in ayrıca bir modül test dizinlerini dışa aktarması ve diğer modüllerin bunları kullanmasına izin vermek mümkün mü?

+0

Test çıkışı, sınıf yoluna eklenmelidir. Projeniz Maven'den mi ithal ediliyor? – Nik

+0

[Maven'de Paylaşım Testi Kodu] 'nın olası bir kopyası (http://stackoverflow.com/questions/174560/sharing-test-code-in-maven) – thecoop

cevap

1

belki de, bunu otomatik oluşturmayla yapmalısınız, maven'de değil, IDE'nizde. Bir maven modülünün testlerini ayrı bir bağımlılık olarak yayınlarsanız (yaptığım bir şey), test kavanozunu diğer modülün bir deposu olarak ekleyebilirsiniz. IDEA elbette bunu otomatik olarak halledecektir.

http://maven.apache.org/guides/mini/guide-attached-tests.html

+0

maven kullanmayı çok ister, ancak bu bir seçenek değildir. Öneri için teşekkürler. – sgargan

+0

Bir seçenek sadece üretim kaynaklarınızdaki şeyleri içerir veya üretim kaynak yolunda test malzemelerini içeren bir "test" modülü yaratır ... – ianpojman

+0

IntelliJ'i bir projedeki test sınıflarının erişilebilir olmasına izin vermek için hiçbir yolu yoktur. Başka bir bağımlı projenin test sınıfları? Örneğin, IDE – thecoop

2

Evet yapabilirsiniz ama basit değil.

Yani Modül-A ve Modül-B var. eğer sadece IntelliJ çalışacak Bu:

Modül-B belki bir AbstractClass uzanır veya den Modül-A

Not Bazı statik yardımcıları kullanan TestClass sahiptir maven veya gradle kullanarak bu hala kontrol etmek için kontrol etmeniz gerekir.

Yapmanız gereken şey.

  1. Goto Proje Yapısı ...(Ctrl+Alt+Shift+S - win/linux)
  2. Goto Modüller ve Test çıkış yolunu not edin veya bu kopya Modül-A 'ın Yol Tab
  3. bak. Böyle bir şey olabilir: C:\dev\projects\myProject\moduleA\build\testclasses veya benzeri.
  4. Goto Modülleri ve Module-B modülünü seçip Bağımlılıklar Tab.
  5. Zaten yeni Kütüphanesi (Yok seçenekleri 2)
  6. günü Modül-A Burada derleme kez de bir bağımlılık varsa ve + tarihinde ok.Click şu veya (Alt+Insert) yazıp ekleyebilir kütüphaneler ekranını seç Yeni Kütüphane ... düğmesini seçin. Java seçeneğini belirtin.
  7. C:\dev\projects\myProject\moduleA\build\testclasses'un üzerindeyken oluşturduğunuz klasöre açılan iletişim kutusunda ve OK'u tıklatın. Şimdi burada Modül-A için sınıflar olacak.Module-A Tests'a uygun bir şekilde adlandırın ve Düzey seçeneğini değiştirin. Modül Kitaplığı.
  8. Kaynağı da eklemek için + düğmesi (Alt+Insert) düğmesini tıklatın. Test src dosyalarına gidin. E.G .: C:\dev\projects\myProject\moduleA\src\test ve bunu ekleyin ve artık bir Kaynak ekleyeceksiniz.
    1. tıklayın Tamam ve geri Proje Yapısı iletişim gelecektir.
    2. Artık bağımlılıklarınıza yeni bir Kitaplık ekleyeceksiniz. alt ve bitmiş de Kapsam Testi için
    3. basın Tamam değiştirin. Projeyi hazırlamanız/temizlemeniz gerekebilir.

Ve şimdi modüller arasında bağlantılı sınav depencies var.

Daha iyi bir çözüm düşünebiliyorsanız, lütfen bize bildirin, ancak bunu yapmanın en kolay yolu budur.

+0

Keşke bunu aramadım keşke .. (Tembel olduğumu sanırım sadece birkaç soyut problem test sınıfını taşıyacağım * Modül B *, gerçekten hoşlanmadım çünkü * Modül A * Testler, * Modül A * 'da kod test etmelerine rağmen * Modül B *' ye taşınmalıdır. – ycomp

İlgili konular