2015-08-24 27 views
25

Ben Android Studio'da aşağıdaki klasör yapısı vardır:Android testi ham kaynak

├── androidTest 
│   ├── java 
│   └── res 
│    └── raw 
│     └── test_file 
└── main 
    ├── java 
    └── res 
     └── raw 
     └── app_file 

Ben androidTest elementlerin ham klasöründe bulunmaktadır test_file kaynağa erişmek çalışıyorum. kaynak bulunamıyor çünkü

InputStream is = this.getInstrumentation() 
       .getContext() 
       .getResources() 
       .openRawResource(R.raw.test_file); 

Android Studio referans hatası atar: Burada ActivityInstrumentationTestCase2 devralan bir Robotium test durumu içine kod. Tam hata "Test_dosyası sembolü çözülemiyor".

Bu kaynak, androidTest kaynakları paketinde bulunan bir test vakası olarak nasıl başvuruda bulunabilir?

+0

Ağacı sizin için üretecek bir aracınız var mı? –

+0

Evet, bash 'ağaç' aracı – jlhonora

+0

Hoş Geldiniz için teşekkürler –

cevap

32

Varsayılan olarak, androidTest projeniz uygulamanızın R sınıfını içerecektir, ancak androidTest'in kaynakları ayrı bir dosyada oluşturulacaktır. Eğer test projesinden R sınıfını emin içe olun:

import com.your.package.test.R; 

[..] 

getInstrumentation().getContext().getResources().openRawResource(R.raw.test_file); 

doğrudan da deney projenin Ar sınıfını başvurabilirsiniz:

getInstrumentation().getContext().getResources().openRawResource(com.your.package.test.R.raw.test_file); 
+3

OP ile aynı dosya yapısına sahibim, ancak 'raw', 'androidTest' varyantı için oluşturulmadı. –

+0

@YaroslavMytkalyk ham klasöre ne tür bir dosya koyuyorsunuz? – jlhonora

+0

@jlhonora uzantısı olmayan bir ikili dosya. Herhangi bir değişiklik yapmayan bazı keyfi uzantıların eklenmesiyle yeniden adlandırıldı. –

9

Ben doğru yerde androidTest kaynaklar (src/androidTest/res) ve Onlara hala <normal.package>.test.R aracılığıyla erişemedim. Neler olup bittiğini anlamaya çalışırken çok zaman harcadım ..

NEDEN cevap üzerine tökezledim. Eğer bir applicationIdSuffix belirttiğiniz bir buildType yapıyorsanız, dosyalarınız <applicationId><applicationIdSuffix>.test.R adresinde bulunmaktadır !!

yani

applicationId "com.example.my.app" 

buildTypes { 
    debug { 
     applicationIdSuffix ".debug" 
    } 
} 

doğru dizinde kaynak androidTest varsa, o zaman sadece com.example.my.app.debug.test.R kullanarak erişebilirsiniz !!!!

İlgili konular