Android Robotium找不到测试用例
我有一个Android项目,我想自动化 我已经为它创建了一个Robotium项目,这里是一个测试用例:Android Robotium找不到测试用例,android,robotium,testcase,Android,Robotium,Testcase,我有一个Android项目,我想自动化 我已经为它创建了一个Robotium项目,这里是一个测试用例: package com.nu.art.software.cyborg.automation.test; import android.app.Instrumentation; import android.content.Context; import android.test.ActivityInstrumentationTestCase2; import android.test.su
package com.nu.art.software.cyborg.automation.test;
import android.app.Instrumentation;
import android.content.Context;
import android.test.ActivityInstrumentationTestCase2;
import android.test.suitebuilder.annotation.Smoke;
import com.nu.art.software.cyborg.automation.core.AutomationManager;
import com.nu.art.software.cyborg.core.ApplicationLauncher;
import com.nu.art.software.cyborg.log.Log;
import com.nu.art.software.cyborg.log.Logger;
import com.nu.art.software.cyborg.modules.automation.AutomationScenario;
import com.nu.art.software.rexml.core.ReXML;
public class TestCase
extends ActivityInstrumentationTestCase2<ApplicationLauncher>
implements Logger {
private AutomationScenario automationScenario;
private Context context;
private Context targetContext;
protected AutomationManager manager;
protected final String TAG = getClass().getSimpleName();
public TestCase() {
super(ApplicationLauncher.class);
}
@Override
public final void setUp()
throws Exception {
Instrumentation instrumentation = getInstrumentation();
context = instrumentation.getContext();
targetContext = instrumentation.getTargetContext();
automationScenario = ReXML.getSystemReXML().deserialize(AutomationScenario.class, context.getAssets().open("user_scenario.xml"));
manager = new AutomationManager();
manager.setInstrumentation(instrumentation);
manager.init();
}
@Smoke
// @SmallTest
public void runScenario()
throws Exception {
try {
manager.executeScenario(automationScenario);
} catch (Exception e) {
logError(e);
throw e;
}
}
/** Some log methods **/
}
package com.nu.art.software.cyborg.automation.test;
导入android.app.Instrumentation;
导入android.content.Context;
导入android.test.ActivityInstrumentationTestCase2;
导入android.test.suitebuilder.annotation.Smoke;
导入com.nu.art.software.cyborg.automation.core.AutomationManager;
导入com.nu.art.software.cyborg.core.ApplicationLauncher;
导入com.nu.art.software.cyborg.log.log;
导入com.nu.art.software.cyborg.log.Logger;
导入com.nu.art.software.cyborg.modules.automation.AutomationScenario;
导入com.nu.art.software.rexml.core.rexml;
公共类测试用例
扩展ActivityInstrumentationTestCase2
机具记录器{
私人自动化场景自动化场景;
私人语境;
私有上下文targetContext;
受保护的自动管理器;
受保护的最终字符串标记=getClass().getSimpleName();
公共测试用例(){
超级(ApplicationLauncher.class);
}
@凌驾
公共最终无效设置()
抛出异常{
Instrumentation=getInstrumentation();
context=instrumentation.getContext();
targetContext=instrumentation.getTargetContext();
automationScenario=ReXML.getSystemReXML().反序列化(automationScenario.class,context.getAssets().open(“user_scenario.xml”);
manager=新的AutomationManager();
仪器仪表经理(仪器仪表);
manager.init();
}
@冒烟
//@SmallTest
公共场景()
抛出异常{
试一试{
执行经理(自动化场景);
}捕获(例外e){
对数误差(e);
投掷e;
}
}
/**几种测井方法**/
}
清单中定义的项目包与TastCase所在的包相匹配:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.nu.art.software.cyborg.automation.test"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="7" />
<application
android:icon="@drawable/icon"
android:label="@string/app_name" >
<uses-library android:name="android.test.runner" />
</application>
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.nu.art.software.android.services" />
</manifest>
我确信它无法识别测试,因为:
有什么我遗漏的吗
提前感谢,
Adam。您的测试用例需要从测试开始。例如testRunScenario()。您100%正确。。。我已经习惯了JSystem,我忘了JUnit有这个愚蠢的要求,我还以为Google会更聪明。。。我的错。。。