UWAGA: To rozwiązanie opiera się na użyciu Eclipse Indigo (3.8.2) i może wymagać implementacji nieco inaczej dla innego IDE, chociaż podstawowe zasady będą takie same.
Miałem podobne problemy i stwierdziłem, że zawsze działa:
( UWAGA: te instrukcje dotyczą tworzenia nowej grupy projektów od podstaw. Jeśli już zbudowałeś części grupy projektów, może być konieczne zmodyfikowanie projektów, aby łączyć się w ten sam sposób ).
- Utwórz nowy projekt biblioteki systemu Android, zaznaczając pole wyboru „Jest biblioteką” podczas tworzenia. (na przykład projekt Android o nazwie „RemingtonAndroidTools”).
- Zbuduj projekt biblioteki systemu Android i sprawdź, czy utworzył plik jar w folderze bin. (na przykład plik jar o nazwie „RemingtonAndroidTools.jar”).
- Utwórz pusty projekt systemu Android do testowania aplikacji na Androida, która będzie służyć jako aplikacja testowa systemu Android. (Na przykład projekt Android o nazwie „RemingtonAndroidToolsTestApp”). Nie musisz modyfikować kodu źródłowego ani zasobów projektu aplikacji testowej systemu Android, chyba że masz coś, co należy dodać do testowania. Wiele rzeczy można przetestować bez żadnych modyfikacji projektu aplikacji testowej na Androida. Projekt aplikacji testowej systemu Android jest pomostem między projektem biblioteki systemu Android a projektem Android Junit, który umożliwia testowanie projektu biblioteki systemu Android za pośrednictwem narzędzia Android Junit.
- Przejdź do karty Biblioteka ścieżki budowania języka Java dla projektu aplikacji testowej systemu Android (w tym przykładzie „RemingtonAndroidToolsTestApp”).
- Dodaj plik jar (w tym przykładzie „RemingtonAndroidTools.jar”) projektu biblioteki systemu Android (w tym przykładzie „RemingtonAndroidTools”) za pomocą przycisku „Dodaj słoiki…”.
- Utwórz nowy projekt Android Test (na przykład „RemingtonAndroidToolsTester”), który będzie służył jako Android Library Tester, i wybierz projekt Android Test App (w tym przykładzie „RemingtonAndroidToolsTestApp”) jako cel.
- Przejdź do karty Biblioteka ścieżki budowania języka Java dla projektu Android Library Tester (w tym przykładzie „RemingtonAndroidToolsTester”).
- Dodaj plik jar (w tym przykładzie „RemingtonAndroidTools.jar”) projektu biblioteki systemu Android (w tym przykładzie „RemingtonAndroidTools”) za pomocą przycisku „Dodaj słoiki…”.
- Znajdź ostatni folder pakietu systemu Android w projekcie Android Library Tester (na przykład „danny.remington.remington_android_tools_test_app.test”) i dodaj klasę testową (na przykład „MainActivityTest”), która dziedziczy po ActivityInstrumentationTestCase2.
- Edytuj klasę testową (w tym przykładzie „TestActivityTest”), aby użyć działania (na przykład „TestActivity”) aplikacji testowej na Androida (w tym przykładzie „RemingtonAndroidToolsTestApp”) jako parametru dla ActivityInstrumentationTestCase2.
- Edytuj klasę testową (w tym przykładzie „TestActivityTest”) i utwórz domyślny konstruktor, który wywołuje funkcję super (Class) i przekazuje ją do klasy aplikacji testowej systemu Android (na przykład „TestActivity.class”).
Powinieneś skończyć z trzema projektami (Android Library, Android Test App, Android Library Tester), które wyglądają podobnie do tego:
Powinieneś otrzymać klasę do testowania biblioteki Androida, która wygląda podobnie do tego:
package danny.remington.remington_android_tools_test_app.test;
import android.test.ActivityInstrumentationTestCase2;
import danny.remington.remington_android_tools_test_app.TestActivity;
/**
*
*/
public class TestActivityTest extends
ActivityInstrumentationTestCase2<TestActivity> {
public TestActivityTest() {
super(TestActivity.class);
}
}
Następnie możesz dodać dowolny test, który chcesz. Nie będzie konieczne dalsze odwoływanie się do aplikacji Android Test (w tym przykładzie „RemingtonAndroidToolsTestApp”), aby uruchomić testy, chyba że będą one wymagały dostępu do określonego składnika systemu Android (na przykład do folderu Assets). Jeśli potrzebujesz uzyskać dostęp do jakichkolwiek komponentów specyficznych dla Androida, możesz to zrobić, modyfikując aplikację Android Test App (w tym przykładzie „RemingtonAndroidToolsTestApp”), a następnie odwołując się do niej za pomocą oprzyrządowania udostępnionego przez standardowy interfejs Android Junit API. (Możesz przeczytać więcej na ten temat tutaj: http://developer.android.com/tools/testing/testing_android.html )