2013-06-03 9 views
8

Wszystkie przykłady użycia Robolectric I mogą być oparte na Maven. Czy ktoś nie używa Mavena? Jeśli tak, bardzo chciałbym zrozumieć konfigurację twojego projektu IntelliJ.Czy ktoś używa Robolectric bez Maven na IntelliJ?

Po przeczytać ten post

android-unit-test-approaches

wydaje się rozsądne, aby mieć wielopoziomowe podejście do jednostki testig android projekty z kombinacji czystego JUnit, robolectric & android ramowych badań testowych. Jeśli ktoś, kto robi to z lub bez Mavena, chciałbym trochę zrozumieć, w jaki sposób skonfigurowałeś swoje projekty w IntelliJ.

Zgaduję, że będę potrzebował wielu projektów/modułów. Wszelkie mądrości na ten wdzięcznie otrzymał.

Odpowiedz

6

Maven to świetne narzędzie do robienia rzeczy wygodniej. Jeśli wciąż szukasz sposobu instalowania Robolectric wewnątrz IntelliJ BEZ Maven, podążać:

  1. Pobierz Robolectric: https://oss.sonatype.org/index.html#nexus-search;quick~robolectric pobrać najnowszą jar-with-dependencies.jar pliku. Pobierz go i umieścić go w libs/katalogu projektu aplikacji

  2. skonfigurować źródło aplikacji o następującej strukturze plików (jest to powszechnie stosowana metoda ustawiania katalogów aż do testowania Robolectric)

    ProjectName/ 
        src/ 
         main/ 
          java/ 
            com/ 
             example/ 
               packageName/ 
                 javaClassesHere.java 
         test/ 
          java/ 
            com/ 
             example/ 
               packageName/ 
                 javaTestClassesHere.java 
    
  3. W Intellij przejdź do Plik> Struktura projektu. Następnie w lewej kolumnie wybierz "Moduły".
    W środkowej kolumnie wybierz moduł aplikacji.
    Następnie w prawej kolumnie kliknij kartę "Źródła".
    Teraz w przeglądarce plików znajdź katalog "src" i rozwiń go. Następnie rozszerz oba katalogi "główne" i "testowe" wewnątrz src. Kliknij katalog "java" pod "głównym", a następnie w górę, kliknij niebieski przycisk "Źródła" . Następnie dla katalogu "java" w "test", w górnym górnym rogu kliknij przycisk "Źródła testowe" .
    Kliknij również główny katalog "src" i przycisk Usuń niebieskie źródła, aby nie był już niebieski.

  4. Nadal w oknie struktury projektu przejdź do lewej kolumny i kliknij "Biblioteki".
    Jeśli widzisz już pozycję dla robolectric w środkowej kolumnie, kliknij ją, a następnie kliknij czerwony znak "-" w górnej części środkowej kolumny.
    Teraz kliknij zielony znak "+" nad środkową kolumną i wybierz "Java". Przejdź do słoika robolektrycznego pobranego w kroku 1. (powinien on znajdować się w katalogu libs twojego projektu:
    Pojawi się teraz okno z zapytaniem o moduły, z których chcesz korzystać z Robolectric. Wybierz wszystkie moduły, które są zamiar używać robolectric i kliknij OK. teraz kliknij przycisk Zastosuj i OK, aby wyjść struktury projektowej.

Jesteś teraz wszystko skonfigurować do testowania z robolectric!

+0

Maven to złożone narzędzie do tworzenia aplikacji mobilnych. Może być bardzo dobry i użyteczny dla rozwoju po stronie serwera, ale nie dla prostego tworzenia aplikacji mobilnych. Ant działa najlepiej i jest wspierany przez system Android SDK. – Sileria

+1

@Mobistry Mam przeciwne doświadczenia. Maven (wraz z Nexusem) bardzo pomógł mojej drużynie. Zarządzanie zależnościami jest ważne dla każdego projektu oprogramowania, zwłaszcza gdy zaczyna się ono komplikować. –

+0

Czy istnieje sposób przeprowadzania testów Robolectric na Eclipse (Juno) ** bez ** Maven? Nie miałem szczęścia przy szybkich krokach na stronie robolectric. – JaKXz

3

Zgaduję, że większość ludzi używających Roboelectric używa Mavena, ponieważ większość osób, które zadają sobie trud posługiwania się Roboelectric, poważnie myśli o ich testowaniu.

Biorąc pod uwagę, że są zmotywowani, aby włożyć duży wysiłek w testowanie, najprawdopodobniej będą chcieli włączyć swoje testy w automatyczną kompilację, zazwyczaj na serwerze ciągłej integracji (CI), takim jak Jenkins lub Hudson.

Jeśli chcesz przeprowadzić automatyczne testowanie, potrzebujesz dobrej kompilacji z wiersza polecenia. Gradle to zupełnie nowe, oficjalne narzędzie do budowania linii poleceń dla systemu Android, ale jako zupełnie nowe, wciąż jest ono w toku i jeszcze nie jest szeroko stosowane. Wypróbowane i prawdziwe narzędzie to Maven.

Wiele osób uwielbia nienawidzić Mavena, ale wykonuje swoją robotę i pokonuje Ant o milę.

Zatem używanie Mavena (lub Gradle'a) nie jest złym pomysłem - da ci to dużo więcej do testowania niż do testów w twoim IDE.

+0

Dzięki za to. Chcę skonfigurować CI dla mojego projektu i pomogłeś mi teraz osiąść na Mavenie. Słuchałem detraktora Mavena, który dość rozsądnie lokalizuje długie czasy kompilacji i skomplikowane problemy z zależnościami, jako powody, by tego nie używać. Nie jestem ekspertem w budowaniu Javy i wygląda na to, że Maven może zostać zmuszony do robienia tego, co chcesz. –

+0

Maven nie ponosi całkowitej winy za długie czasy kompilacji i skomplikowane problemy z zależnościami - za to odpowiedzialni są twórcy oprogramowania, który zdecydował się na użycie skomplikowanej sieci wzajemnie zależnych bibliotek. Maven to po prostu narzędzie, za pomocą którego można zarządzać tymi zależnościami. Ale nienawidzący Mavena będą nienawidzić ... W każdym razie nowe narzędzie do tworzenia Gradle będzie w stanie zarządzać tymi samymi zależnościami, i mam nadzieję, że wykonamy jeszcze lepszą pracę. – GreyBeardedGeek

2

Jestem rannym ptaszkiem w Robolectric sky i zaczęło się od pójścia drogą Maven.Mą główną motywacją było wypróbowanie ramy, a tym samym neve po raz drugi pomyślał o użyciu Mavena. Mam udokumentowane moje nauki na:
http://dasherize.blogspot.in/2013/04/robolectric-beginning.html
i można znaleźć instrukcje konfiguracji here.

Uwaga: Dotyczy to Robolectric 1.x. Ale nie powinno to się znacznie różnić w przypadku zmiany wersji.

Co do this answer Całkowicie zgadzam się z @GreyBeardedGeek. Musisz się ustatkować z Mavenem, jeśli chcesz skonfigurować CI.

Powiązane problemy