Простой не-API Android-тест JUnit в Eclipse с android-maven-plugin?

Я запускаю не-Android JUnit-тесты из Eclipse каждый день. Сегодня я хотел протестировать некоторые из моих классов библиотеки Android. Ох, боль.

У меня есть проект библиотеки Android с использованием Android-Maven-плагин. У меня есть исходные файлы вsrc/main/java и мой (новый) модульный тест вsrc/test/java, У моего POM есть соответствующие зависимости JUnit и ссылки на android-maven-plugin.

Иногда я создаю AndroidUri экземпляр изFile, Иногда у меня есть существующая JavaURI пример того, что ямы создали изFile который я затем преобразовать вUri, Так как я не доверяю ни Java, ни Android с файлами и URI (нея не могу начать с того, как Java искажает UNC-пути в URI, или как Java ломаетequals() контракт в URI), я хотел создать простой модульный тест для создания временного файла, создатьUris от двух разных подходов, и убедитесь, что они выходят равными.

Так что я делаю небольшой юнит-тест JUnit, как ям, и попробуйте запустить его в Eclipse, используяCtrl+F11, Затмение спрашивает меня, если этоAndroid JUnit Test » или "Юнит Тест ", Ну, Android, очевидно. Поэтому я выбираю первый вариант и получаю:

[2013-03-23 21:37:10 - mylib] ------------------------------
[2013-03-23 21:37:10 - mylib] Android Launch!
[2013-03-23 21:37:10 - mylib] adb is running normally.
[2013-03-23 21:37:10 - mylib] Could not find mylib.apk!

Хм ... это не былот очень успешный. Поэтому я удаляю конфигурацию запуска и пытаюсь простоЮнит Тест ", Теперь я получаю другое диалоговое окно с просьбой выбрать предпочитаемую программу запуска "Android JUnit Test Launcher " или же "Eclipse JUnit Test Launcher ", Это неневажно, что я выберу; Я получаю: я

Class not found com.example.MyUnitTest
java.lang.ClassNotFoundException: com.example.MyUnitTest
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClass(RemoteTestRunner.java:693)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClasses(RemoteTestRunner.java:429)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

Я читал, что с помощью плагина android-maven-plugin я могу запускать модульные тесты локально в Eclipse, если они просто используют классы в банке Android, но нея не делаю никаких вызовов API, что я и делаюя здесь делаю Так как мне это осуществить?

Ответы на вопрос(3)

Ваш ответ на вопрос