Android Studio 中不同风格的测试包
Posted
技术标签:
【中文标题】Android Studio 中不同风格的测试包【英文标题】:Test package for different flavors in Android Studio 【发布时间】:2014-04-17 21:27:28 【问题描述】:我正在 androidstudio 中的应用程序上试验风味。我必须为风味编写不同的测试类,因为我有不同的风味类文件。但我想知道是否有任何选项可以为 build.gradle 中的每种风味指定测试包。这是我的 build.gradle 供参考。我使用的是 0.4.6 版本的 AndroidStudio。
apply plugin: 'android'
android
compileSdkVersion 19
buildToolsVersion "19.0.1"
defaultConfig
minSdkVersion 8
targetSdkVersion 19
testPackageName "com.example.tests"
productFlavors
Paid
packageName "com.example.paid"
Free
packageName "com.example.free"
sourceSets
main
java.srcDirs = ['src/main/java']
res.srcDirs = ['src/main/res']
Paid
java.srcDirs = ['src/Paid/java']
res.srcDirs = ['src/Paid/res']
Free
java.srcDirs = ['src/Free/java']
res.srcDirs = ['src/Free/res']
signingConfigs
releaseConfig
storeFile file('filename');
storePassword('filepwd');
keyAlias "aliasname";
keyPassword "aliaspassword";
buildTypes
release
runProguard true
debuggable false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.releaseConfig
packageNameSuffix ".release"
debug
runProguard false
debuggable true
packageNameSuffix ".debug"
dependencies
compile project(':androidViewPagerIndicator_library')
compile 'com.android.support:appcompat-v7:+'
【问题讨论】:
我添加了一个基本设置示例here 【参考方案1】:这真的是为我做的:How to specify unit test folder in two-dimension flavor
dependencies
androidTestFlavor1Compile "..."
//In your case androidTestStbAppleCompile
【讨论】:
【参考方案2】:来自documentation
测试多风格项目与更简单的项目非常相似。
androidTest 源集用于所有类型的通用测试, 而每种口味也可以有自己的测试。
如上所述,创建了用于测试每种风味的源集:
android.sourceSets.androidTestFlavor1 android.sourceSets.androidTestFlavor2
因此,正如您现在应该拥有包含每种口味的特定代码的“免费”和“付费”文件夹一样,您可以添加“androidTestFree”和“androidTestPaid”文件夹,您可以在其中添加特定于您的每一个的测试用例口味。
【讨论】:
我尝试在 src 文件夹中添加 androidTestFree 和 androidTestPaid 文件夹,就像我拥有 InstrumentTest 文件夹一样。但是当我选择风格时没有检测到这些类,当我运行类时,我收到 Empty Test Suite 警告。 您使用的是哪个版本的构建工具?在 0.9 版中,instrumentTest 文件夹已重命名为 androidTest,但如果您使用的是以前的版本,则必须相应地命名“风味”测试文件夹。在您的情况下,这将是 instrumentTestFree 和 instrumentTestPaid。 谢谢 ivagarz。我使用的是 0.8 版,更改文件夹名称解决了这个问题。 我使用 gradle 2.1,我使用默认 sourceSets,我的测试在 MyApplication/src/adroidTestFlavor1 和 MyApplication/src/adroidTestFlavor2 中。它不起作用。我做错了什么? @ivagarz buildtools 'com.android.tools.build:gradle:0.13.+'。我从 Android Studio 执行测试(我为模块 MyApplication 添加了 Android 测试配置)。我从 androidTest 重命名为 androidTestFlavor1 的文件夹中只有 java 文件夹是绿色的,第二个文件夹 androidTestFlavor1/java 像往常一样是橙色的。以上是关于Android Studio 中不同风格的测试包的主要内容,如果未能解决你的问题,请参考以下文章
无法在 android (Android studio) 中测试受保护的方法
Android-Studio(或一般的 IDEA)重构多个源集