2010-03-17 14 views
6

MyApp adlı bir modülüm ve MyAppTests adlı başka bir modülün MyApp'a bağımlılığı var. Her iki modülde bir tane MyApp.apk ve diğer MyAppTests.apk adında APK'ler bulunur.Karınca kullanarak başka bir uygulama bağımlılığı olan bir android test uygulaması nasıl oluşturulur?

Normalde bunları IntelliJ veya Eclipse'de yapıyorum, ancak sürekli entegrasyon amacıyla kendileri için bir karınca oluşturma dosyası oluşturmak istiyorum.

MyApp için bir derleme dosyası oluşturmak için "android update" kullanmıştım ve önceki soruma commonsware's answer sayesinde karınca başarıyla oluşturmayı başardım.

Artık MyAppTests.apk kullanarak ant oluşturmak istiyorum. "Android update" işlevini kullanmadan önce buildfile'ı kurdum, ancak çalıştırdığımda MyApp sınıflarını bulamadığını belirten bir hata alıyorum.

Önceki soruğumdan bir not alırken, MyApp.apk'ı MyAppTests/lib'larıma yerleştirmeyi denedim, ancak maalesef bu sorunu mucizevi bir şekilde çözemedi.

Başka bir APK'daki sınıflara bağlı olduğunda karınca kullanarak bir test uygulaması APK'sı oluşturmanın en iyi yolu nedir? Ana uygulama kaynak MyApp adlı bir alt dizininde olduğunu varsayarak /Users/mike/Projects/myapp/android/ yılında

$ ant debug 
Buildfile: build.xml 
    [setup] Project Target: Google APIs 
    [setup] Vendor: Google Inc. 
    [setup] Platform Version: 1.5 
    [setup] API level: 3 
    [setup] WARNING: No minSdkVersion value set. Application will install on all Android versions. 

dirs: 
    [echo] Creating output directories if needed... 

resource-src: 
    [echo] Generating R.java/Manifest.java from the resources... 

aidl: 
    [echo] Compiling aidl files into Java classes... 

compile: 
    [javac] Compiling 5 source files to /Users/mike/Projects/myapp/android/MyAppTests/bin/classes 
    [javac] /Users/mike/Projects/myapp/android/MyAppTests/src/com/myapp/test/GsonTest.java:3: cannot find symbol 
    [javac] symbol : class MyApplication 
    [javac] location: package com.myapp 
    [javac] import com.myapp.MyApplication; 
    [javac]    ^

cevap

4

, çalıştırın:
sonra bunu yapabilirsiniz, dosyaları oluşturmak bir test klasör yapısı oluşturmak ve uygun Ant olacak android create test-project -p MyAppTests -m ../MyApp -n MyAppTests

:
cd MyAppTests
ant run-tests

+0

Teşekkürler Christopher! Bu gerekli yapı dosyalarını yarattı ve doğru çözüm gibi görünüyor, ama henüz tam olarak çalışmıyor. İşte şu anki sorun: http://stackoverflow.com/questions/2472059/class-ref-in-pre-verified-class-resolved-to-unexpected-implementation-when-runn – emmby

1

Bu tam sorunu koştum.

Benim için çözüm, aşağıdakileri ant.properties'ime eklemekti.

tested.project.dir=../MyApp 

Christopher'ın cevabı sizin için bir ant.properties dosyası da oluşturacaktır. Eclipse'de tam işlevli bir projeniz yoksa, çözümü daha iyi.

Benim için, projem zaten Eclipse'de çalışıyor ve çalışıyordu, ancak karıncaya yer vermeyecekti. Bunu başarmak için, sadece yukarıdaki antroporezlerime ihtiyacım vardı. Eclipse ve diğer IDE'ler sizin için uygun antropertiler üretmezler, dolayısıyla Christopher'ın cevabı işe yarar çünkü antropertiler oluşturur.

İlgili konular