在单元测试中,如何在我的(桌面)文件系统上读取json文件中的数据,而无需对路径进行硬编码?
我想从文件中读取测试输入(对于我的解析方法),而不是创建静态字符串.
该文件与我的单元测试代码位于同一位置,但如果需要,我也可以将其放在项目的其他位置.我正在使用Android Studio.
想知道哪个是为Android应用程序和库编写单元测试用例的更好选择:使用Robolectric库或坚持使用Android测试框架.我想在命令行运行测试套件,并希望它独立于配置模拟器或让设备连接到构建机器的需要.你们有没有人对这两者或其他更好的事情进行比较分析?您的经验将很有助于我决定更好的解决方案.
junit continuous-integration android unit-testing robolectric
我正在开发一个移动Android应用程序.用于Android单元测试的最常见的库/框架是什么?我觉得大多数业务逻辑,数据库测试,Web服务测试都可以使用JUnit完成.
但是,测试UI,UI工作流等的最佳方法是什么?例如,我们如何测试Android应用程序是否成功启动了Web浏览器?或者我们如何确认按钮,某些事情是否成功按下?或者如果图像加载成功?
我有一个简单的HelloWorld Android项目(内置在Eclipse IDE中),我能够在cmd提示符下为此项目成功执行"gradle build".
我也为它编写了一个简单的JUnit Android测试项目,它在Eclipse中运行良好.
现在我想使用Gradle脚本运行此测试项目或单元测试用例(如果我的理解是错误的!).我怎么做?
以下是我正在使用的build.gradle文件.我想知道如何编写脚本代码来自动执行测试用例.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.10.+'
}
}
apply plugin: 'android'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}
android {
compileSdkVersion 19
buildToolsVersion "19.0.3"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
test {
java.srcDirs = ['src/test/java']
resources.srcDirs = ['src/test/resources']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests') …Run Code Online (Sandbox Code Playgroud) 我正在将我的android项目迁移到gradle构建系统,我无法从我的Integration Test Android项目中导入我的Android项目.
我正在使用具有多个android-libraries的多项目配置,并且它工作得很好,但是我在使用多项目设置设置我的测试项目时遇到了问题.出于外部原因,我需要继续使用此结构.
MyProject/
| settings.gradle
+ MyApp/
| build.gradle
| src
| res
| libs
+ Instrumentation-Tests/
| build.gradle
| src
| res
| libs
Run Code Online (Sandbox Code Playgroud)
我当前的配置文件如下所示:
settings.gradle:
include ':MyApp', 'Instrumentation-Tests'
Run Code Online (Sandbox Code Playgroud)
MyAppp /的build.gradle:
apply plugin: 'android'
repositories {
mavenCentral()
}
dependencies {
compile files('.....jar')
compile project('....')
compile 'com.android.support:support-v4:13.0.+'
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 11
targetSdkVersion 16
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = …Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的MainActivity编写一个检测测试.我按照这里给出的答案.Android Studio仍无法找到任何测试.我在androidTest文件夹中有ApplicationTest.java类.这是班级的内容:
package com.example.monicamarcus.mymusicplayer
import android.app.Activity;
import android.test.ActivityInstrumentationTestCase2;
import com.example.monicamarcus.mymusicplayer.MainActivity;
public class ApplicationTest extends ActivityInstrumentationTestCase2<MainActivity> {
public ApplicationTest() {
super(MainActivity.class);
}
public void testNextTrackButton() throws Exception {
Activity activity = getActivity();
Button nextButton = (Button) activity.findViewById(R.id.nextTrackBt);
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
nextButton.performClick();
assertTrue(currentPosition < songList.size());
}});
activity.finish();
}
}
Run Code Online (Sandbox Code Playgroud)
这个测试类出了什么问题?还是测试?我没有得到任何错误,它只是没有找到任何测试运行.运行ApplicationTest后,输出以以下行结束:
Running tests
Test running startedFinish
Empty test suite.
Run Code Online (Sandbox Code Playgroud)
这是app的build.gradle文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.example.monicamarcus.mymusicplayer"
minSdkVersion 16
targetSdkVersion …Run Code Online (Sandbox Code Playgroud) 我很难让Robotium在基于gradle的Android Studio上工作,我找不到使用gradle CLI运行测试的方法.我将robotium.jar"robotium-solo-5.4.1.jar"放入libs文件夹,添加为库.在src文件夹中,我为测试源创建了另一个文件夹androidTest-> java-> package,其名称与app的包名称相同 - > Test.java"java"(在"androidTest"内部)是绿色.
UI:像往常一样使用Android Studio Run菜单 - 工作.
console:在终端输入以下命令:gradlew connectedAndroidTest = not working.我也试过"gradlew test",测试结果在build/test-report中生成,但是它们表明没有找到测试.
我想在没有连接设备的情况下使用gradle CLI运行Robotium测试,因为我想在CircleCI中的Android模拟器中运行测试.
我的build.gradle/test文件有问题,还是有遗漏的东西?
我真的很感激任何帮助!
*****这是我的build.gradle文件
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
dexOptions {
// jumboMode true
javaMaxHeapSize "2g"
}
defaultConfig {
applicationId 'net.example'
minSdkVersion 14
targetSdkVersion 22
versionName '2.8.1'
versionCode 2801
multiDexEnabled true
}
buildTypes {
debug{
debuggable true
jniDebuggable true
}
release {
debuggable false
jniDebuggable false
minifyEnabled true
proguardFiles 'proguard-coda.txt', 'proguard-rules.pro'
}
} …Run Code Online (Sandbox Code Playgroud)android ×6
gradle ×3
unit-testing ×3
junit ×2
robotium ×2
build.gradle ×1
circleci ×1
eclipse ×1
gradlew ×1
java ×1
robolectric ×1
testing ×1