我一直在按照这篇教程设置Robolectric来测试我的Android Gradle项目。
但我一直遇到这个错误:
android.content.res.Resources$NotFoundException: no such label com.mypackage.dev:string/app_name
通过从教程中下载示例项目,我确定问题出在我的productFlavors
(dev、staging、production)上。将flavor添加到可工作的示例项目会导致相同的问题。您可以在此答案中查看我的build.gradle的大纲。
我看到了各种答案(例如这里),建议我需要为每个flavor指定。我尝试了很多组合,但仍然不能完全正确地理解它。有人能帮忙吗?让我感到困惑的另一件事是,我见过的所有Robolectric示例似乎都指定了"instrumentTest"的sourceSets和dependencies,即使Robolectric测试始终只在"test"文件夹中。在我的情况下,我已经在instrumentTest文件夹中拥有Robotium测试,并且我不明白为什么我需要为Robotium代码添加Robolectric依赖项。