2012-06-08 12 views
11

Mam projekt wielomodułowy w Intellij i mam kilka opraw ogórka w źródłach testowych jednego submodułu, które chciałbym wykorzystać w innym submoduł. Jeśli dodaję drugi moduł, jako zależność, wówczas jego normalny katalog ouptut zostanie dodany do ścieżki klasy junit, ale nie jej wyników testów.W Intellij możliwe jest, aby jeden moduł był zależny od testów innego modułu

Czy jest możliwe, aby intellij również eksportował katalog testów modułów i zezwalał innym modułom na ich używanie?

+0

Wyniki testów należy dodać do ścieżki klasy. Czy twój projekt został zaimportowany z Maven? – Nik

+0

możliwy duplikat [Udostępnianie kodu testowego w Maven] (http://stackoverflow.com/questions/174560/sharing-test-code-in-maven) – thecoop

Odpowiedz

1

Być może, ale powinieneś to robić poprzez automatyczną kompilację, tj. W maven, a nie w IDE. jeśli publikujesz testy modułu maven jako oddzielną zależność (coś, co robię), możesz dodać słoik testów jako dep drugiego modułu. POMYSŁ oczywiście obsłuży to automatycznie.

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

+0

chciałbym użyć maven, ale to nie jest opcja. Dzięki za sugestię. – sgargan

+0

Jedną z opcji jest po prostu włączanie elementów do źródeł produkcyjnych lub tworzenie modułu "testowego", który zawiera elementy testowe w ścieżce źródłowej produkcji ... – ianpojman

+0

Nie ma możliwości, aby IntelliJ zezwolił na dostęp do klas testowych w jednym projekcie. klasy testowe innego projektu zależnego? Na przykład, testowanie uruchamiania i debugowania lokalnie za pośrednictwem IDE – thecoop

2

Tak można, ale to nie jest proste.

Więc trzeba Module-A i Module-B.

Module-B ma TestClass że może rozciąga się AbstractClass lub wykorzystuje kilka statycznych pomocników z module-A

Uwaga: to będzie działać tylko w IntelliJ, jeśli jesteś przy użyciu maven lub gradle będziesz musiał sprawdzić, czy to wszystko będzie w porządku.

Oto, co musisz zrobić.

  1. Goto Struktura Project ...(Ctrl+Alt+Shift+S - win/linux)
  2. Goto Moduły i spojrzeć na Module-A „s Path Tab
  3. Zanotuj ścieżkę wyjścia testowego lub skopiować ten. Może to być coś takiego: C:\dev\projects\myProject\moduleA\build\testclasses lub podobne.
  4. Przejdź do Modułów i wybierz opcję Moduł-B i spójrz na jej zakładkę Zależności.
  5. Można już zależność od Module-A tu na czasie kompilacji i to ok.Click na + lub wpisz (Alt+Insert) i dodać nową bibliotekę (nr 2 od opcji)
  6. Na wybierz ekran bibliotek wybierz przycisk Nowa biblioteka .... Wybierz opcję Java.
  7. W oknie dialogowym, które się pojawi, przejdź do folderu kompilacji, który miałeś powyżej C:\dev\projects\myProject\moduleA\build\testclasses i kliknij OK. Będziesz teraz miał tutaj klasy dla twojego Module-A.Nazwij ją odpowiednią nazwą Module-A Tests i zmień opcję poziomu na Biblioteka modułów.
  8. Kliknij przycisk +(Alt+Insert), aby dodać również źródło. Przejdź do testowych plików src. Np .: C:\dev\projects\myProject\moduleA\src\test i dodaj to, a otrzymasz również Źródła dodane.
    1. Kliknij OK i wrócisz do okna Projektu Struktura.
    2. Teraz będziesz mieć nową bibliotekę dodaną do twoich zależności. Zmień Zakres do test
    3. Naciśnij OK na dole i gotowe. Być może trzeba będzie wykonać/wyczyścić projekt.

A teraz masz depencies testowych umieszczony między modułami.

Jeśli możesz wymyślić lepsze rozwiązanie, proszę daj mi znać, ale jest to najprostszy sposób, jaki znalazłem.

+0

Naprawdę szkoda, że ​​nie szukałem tego ... (jestem leniwy, myślę, że po prostu przeniesiemy kilka klas abstrakcyjnych problemów testowych do * Modułu B *, nie podoba mi się to, ponieważ niektóre * Moduł A * Testy będą musiały zostać przeniesione do * Modułu B *, mimo że testują kod w * Module A *, ale no cóż - jest prostsze – ycomp

Powiązane problemy