簡體   English   中英

如何判斷InstrumentationTestRunner是否正在運行我的Android應用?

[英]How can I tell if my Android app is being run by the InstrumentationTestRunner?

在我的應用程序(基於gradle的Android Studio項目)中,在測試下運行時,我需要創建一個具有不同名稱的文件。 例如,在生產環境中,我想使用名稱com.myapp.file,而在測試下運行時, 則要使用com.myapp.file。 測試

我想做的是這樣做:

String packageName = getApplicationContext().getPackageName(); MyFile file = new MyFile(packageName);

我希望在正常測試下(./gradlew connectedInstrumentTest)運行時, packageName會自動不同。 我檢查了清單,它表明我的測試清單具有以.test結尾的程序包名稱,但是在運行時似乎沒有將其傳遞給應用程序。

有沒有一種方法可以:

1)在運行測試時更新gradle或項目文件以使用其他包名稱

-要么-

2)是否可以通過編程方式確定我的應用程序正在測試中?

實際上,由於Android本質上是在測試運行程序中使用JUnit測試,因此我可以肯定地說,Android並沒有給您明確的方法來告訴您您正在測試模式下運行。 我將遵循SO的建議在這里: 如何確定代碼是否在JUnit測試內運行?

我一定會同意,以不同的方式運行是不好的做法,但是如果您只是想在測試中保存到其他文件,這似乎不太公平。 我將使用共享首選項或在Application類中設置的全局變量來檢查您是否正在測試中運行。 由於通常在生產代碼中引用測試是一個壞主意,因此我認為僅在某個位置定義文件名並在設置和拆卸中進行更改是正確的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM