Тест Robotium не может найти класс активности - PullRequest
3 голосов
/ 13 марта 2012

Я использовал robotium для тестирования своего приложения для Android.Я нашел это очень полезным инструментом до сих пор.Недавно мы провели рефакторинг, который использовал бы только одно действие во всем приложении, каждая страница будет заменена фрагментом.

Однако, после того, как мы начали использовать это действие для запуска модульных тестов, тест сообщает об ошибке NoClassDefound - не удалось найти класс действия.Я нигде не вижу, что я должен изменить конфигурацию.

Кто-нибудь может подсказать, что может быть не так, где проверить и так далее?

[INFO]     java.lang.RuntimeException: Exception during suite construction
at android.test.suitebuilder.TestSuiteBuilder$FailedToCreateTests.testSuiteConstructionFailed(T  estSuiteBuilder.java:239)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:529)
....
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NoClassDefFoundError: com.xxx.wallet.HaloActivity
at com.xxx.wallet.HaloActivityTest.<init>(HaloActivityTest.java:12)
... 18 more

Приложение apk загружено, AndroidManifest.xml тоже должен быть в порядке.

1 Ответ

0 голосов
/ 27 июля 2012

Убедитесь, что после рефакторинга:

AndroidManifest.xml тестового проекта все еще точен:

<instrumentation android:targetPackage="package.of.the.app.under.test">

Тестовый класс все еще точен:

public class YourTest extends ActivityInstrumentationTestCase2<SplashScreenActivity> {
    protected static final String TARGET_PACKAGE_ID = "package.of.the.app.under.test";

    protected Solo solo;
    public Test() {
        super(TARGET_PACKAGE_ID, StartingActivityOfYourAppUnderTest.class);
    }
    //..
} 

Все библиотеки тестируемого приложения можно найти (!) Только в libs / yourlibrary.jar, и на них есть ссылки в Project-> Properties-> Java Build Path-> Libraries

...