我有一个Mainmenu活动,该活动从文件中获取数据并显示。我希望在每次浓缩咖啡测试的开始时删除数据,并且在测试之间不持续。
我尝试了以下内容:
Context mContext;
@Before
public void setUp() {
mContext = InstrumentationRegistry.getInstrumentation().getContext();
File[] files = mContext.getFilesDir().listFiles();
if(files != null){
for(File file : files) {
file.delete();
}
}
}
但是,它不会删除文件。我相信上下文可能是不正确的。有没有办法在浓缩咖啡测试开始时清除内部存储?
文件是'.ser'文件。
您是否尝试过使用ADB shell命令?
我尝试的一件事有助于在浓缩咖啡测试中删除文件,这是通过编程执行ADB Shell命令。这样的东西:
(kotlin样本)
val dir = Environment.getExternalStorageDirectory()
val file = File(dir.absolutePath
+ File.separator + directoryInExtStorageDir
+ File.separator + fileName)
InstrumentationRegistry.getInstrumentation().getUiAutomation().executeShellCommand(
"rm -f " + file.absolutePath)
Java看起来像这样:
File dir = Environment.getExternalStorageDirectory()
File file = new File(dir.getAbsolutePath()
+ File.separator + directoryInExtStorageDir
+ File.separator + fileName)
InstrumentationRegistry.getInstrumentation().getUiAutomation().executeShellCommand(
"rm -f " + file.getAbsolutePath())
为了寻找特定类型的文件,您可以使用FileNameFilter或FileFilter接口。有关如何执行此操作的示例,请参见此答案和此页面。
一个例子可能是这样:
File dir = Environment.getExternalStorageDirectory();
File directory = new File(dir.getAbsolutePath()
+ File.separator + directoryInExtStorageDir);
List<File> filesToDelete = Arrays.asList(directory.listFiles((new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".ser");
}
})));
filesToDelete.forEach(file->{
InstrumentationRegistry.getInstrumentation().getUiAutomation().executeShellCommand(
"rm -f " + file.getAbsolutePath());
});
希望有所帮助。
我遇到了相同的问题。该解决方案只是更改getTargetContext()
的getContext()mContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
File[] files = mContext.getFilesDir().listFiles();
if(files != null){
for(File file : files) {
file.delete();
}
}
很简单:)
in Kotlin ..
@BeforeClass
fun beforeClass() {
getInstrumentation().targetContext.filesDir.deleteRecursively()
}
@RunWith(AndroidJUnit4::class)
@LargeTest
class SomeTest {
@Test
fun someFreshInstallationTest() {
...
}
}