在我的应用程序(基于gradle的Android Studio项目)中,我需要在测试下运行时创建一个具有不同名称的文件。例如,在生产中我想使用名称 com.myapp.file ,并且在测试下运行时, com.myapp.file。测试
我想要做的是:
String packageName = getApplicationContext().getPackageName();
MyFile file = new MyFile(packageName);
我希望 packageName 在测试(./gradlew connectedInstrumentTest)与正常情况下运行时会自动不同。我检查了我的清单,它显示我的测试清单的包名称以 .test 结尾,但在运行时似乎没有将其传递给应用程序。
有没有办法:
1)在运行测试时更新我的gradle或项目文件以使用不同的包名称
-OR -
2)有没有办法以编程方式告诉我的应用程序在测试中运行?
答案 0 :(得分:0)
实际上,由于Android基本上使用JUnit测试和测试运行器,我想我可以肯定地说Android没有给你一种方法来明确告诉你在测试模式下运行。我会按照这个SO的建议来回答:How can I find out if code is running inside a JUnit test or not?
我肯定会同意以不同的方式运行是不好的做法,但如果你只是想在测试时保存到另一个看起来不太不公平的文件。我将使用共享首选项或Application类中设置的全局变量来检查您是否在测试中运行。因为通常在生产代码中引用测试是一个坏主意,我认为只是在某处定义文件名并在设置和拆卸中更改它将是正确的方法。