Teste JUnit Android não-API simples no Eclipse com o android-maven-plugin?

Eu executo testes não-Android JUnit de dentro do Eclipse todos os dias. Hoje eu quis testar algumas das minhas aulas de biblioteca do Android. Oh, a dor

Eu tenho um projeto de biblioteca Android usando o Android-maven-plugin. Eu tenho arquivos fonte emsrc/main/java e meu (novo) teste de unidade emsrc/test/java. Meu POM tem as dependências apropriadas do JUnit e as referências do plugin do android-maven.

Às vezes eu crio um AndroidUri instância de umFile. Às vezes eu tenho um Java existenteURI instância que eu criei de umFile que eu então converter para umUri. Desde que eu confio nem Java nem Android com arquivos e URIs (não me fale sobre como o Java manipula caminhos UNC em URIs, ou como o Java quebra oequals() contrato em URIs), eu queria criar um teste de unidade simples para criar um arquivo temporário, criarUris de duas abordagens diferentes e certifique-se de que elas saiam iguais.

Então eu faço um pequeno teste unitário JUnit como estou acostumado, e tento rodá-lo no Eclipse usandoCtrl+F11. O Eclipse me pergunta se esse é um "Teste Android JUnit" ou um "Teste JUnit". Bem, Android, obviamente. Então escolho a primeira opção e obtenho:

[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!

Hmmm ... isso não foi muito bem sucedido. Então eu apago a configuração de execução e tento apenas "Teste JUnit". Agora eu recebo uma caixa de diálogo diferente, pedindo-me para selecionar o meu lançador preferido, ou "Lançador de Teste Android JUnit" ou "Lançador de Teste Eclipse JUnit". Não importa qual eu escolha; Eu recebo:

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)

Eu li que com o plugin android-maven eu posso executar testes de unidade localmente no Eclipse se eles apenas usam classes no jar do Android, mas não fazem chamadas de API, que é o que estou fazendo aqui. Então, como eu faço isso?

questionAnswers(3)

yourAnswerToTheQuestion