删除android espresso测试的文件
我有一个主菜单活动,从文件中获取数据并显示它。我希望在每次浓缩咖啡测试开始时删除数据,并且在测试之间不保留数据 我尝试了以下方法:删除android espresso测试的文件,android,android-testing,android-espresso,android-espresso-recorder,Android,Android Testing,Android Espresso,Android Espresso Recorder,我有一个主菜单活动,从文件中获取数据并显示它。我希望在每次浓缩咖啡测试开始时删除数据,并且在测试之间不保留数据 我尝试了以下方法: Context mContext; @Before public void setUp() { mContext = InstrumentationRegistry.getInstrumentation().getContext(); File[] files = mContext.getFilesDir().listFiles(); if
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命令 在Espresso测试中,我尝试了一件有助于删除文件的事情,那就是以编程方式执行ADB shell命令。大概是这样的:
File dir = Environment.getExternalStorageDirectory()
File file = new File(dir.getAbsolutePath()
+ File.separator + directoryInExtStorageDir
+ File.separator + fileName)
InstrumentationRegistry.getInstrumentation().getUiAutomation().executeShellCommand(
"rm -f " + file.getAbsolutePath())
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());
});
(科特林样本)
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())
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());
});
对于查找特定类型的文件,可以使用FilenameFilter或FileFilter接口。有关如何执行此操作的示例,请参见和
示例可能如下所示:
File dir = Environment.getExternalStorageDirectory()
File file = new File(dir.getAbsolutePath()
+ File.separator + directoryInExtStorageDir
+ File.separator + fileName)
InstrumentationRegistry.getInstrumentation().getUiAutomation().executeShellCommand(
"rm -f " + file.getAbsolutePath())
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());
});
File dir=Environment.getExternalStorageDirectory();
文件目录=新文件(dir.getAbsolutePath()
+File.separator+directoryintextstoragedir);
List filesToDelete=Arrays.asList(directory.listFiles((新文件名过滤器)(){
@凌驾
公共布尔接受(文件目录,字符串名称){
返回名称.endsWith(“.ser”);
}
})));
filesToDelete.forEach(文件->{
InstrumentationRegistry.getInstrumentation().getUiAutomation().executeShellCommand(
“rm-f”+file.getAbsolutePath());
});
希望有帮助。我遇到了同样的问题。解决方案只是更改getTargetContext()的getContext()
很简单:)您是要从应用程序的“文件”文件夹中删除文件,还是从测试应用程序的“文件”文件夹中删除文件?