Tôi là người mới sử dụng Android và có chút mệt mỏi với Java, xuất phát từ nền .NET. Tôi đang phát triển một số tự động hóa thử nghiệm cho một ứng dụng di động chạy trên Android.Android - InstrumentationTestRunner
Hiện nay, tôi chỉ tung ra các bài kiểm tra qua dòng lệnh sử dụng Cầu Android Debug, nhưng tôi nhận được một lỗi khi tôi cố gắng để chạy bất kỳ xét nghiệm:
Trước hết, đây là lỗi tôi 'm nhận:
junit.framework.TestSuite$1: Failure in warning: junit.framework.AssertionFailedError: No tests found in com.myapp.test.UITests at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154) at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:529) at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1448)
tôi đang sử dụng lệnh adb này để cố gắng để khởi động các thử nghiệm (trên một thiết bị bắt nguồn từ):
adb shell am instrument -e class com.myapp.test.UITests -w com.myapp.test/android.test.InstrumentationTestRunner
Cuối cùng, đây là lớp tôi đang cố gắng để chạy tes ts from:
package com.myapp.test;
import android.app.Activity;
import android.test.ActivityInstrumentationTestCase2;
import com.jayway.android.robotium.solo.Solo;
import junit.framework.Assert;
@SuppressWarnings("unchecked")
public class UITests extends ActivityInstrumentationTestCase2
{
private static final String TARGET_PACKAGE_ID = "com.myapp.main";
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.myapp.main.activities.MainActivity";
private static Class<?> launcherActivityClass;
private Solo solo;
private Activity activity;
static
{
try
{
launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
}
catch(ClassNotFoundException e)
{
throw new RuntimeException(e);
}
}
public UITests() throws ClassNotFoundException
{
super(TARGET_PACKAGE_ID, launcherActivityClass);
}
@Override
protected void setUp()
{
activity = getActivity();
solo = new Solo(getInstrumentation(), activity);
}
@Override
public void runTest() throws Throwable
{
// Simple Test
Assert.assertTrue(solo.searchText("Welcome"));
}
@Override
protected void tearDown() throws Exception
{
try
{
solo.finalize();
}
catch(Throwable e)
{
}
getActivity().finish();
super.tearDown();
}
}
Tôi phải làm điều gì đó sai, nhưng tôi không chắc chắn về điều gì. Tôi đã dựa trên mã của mình trên một số example Tôi tìm thấy trên trang web Robotium.
Tôi rất cảm kích nếu có ai có thể chỉ ra sai lầm của tôi.
Cập nhật - Thêm tập tin Manifest theo yêu cầu
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myapp.test"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="3" />
<application android:icon="@drawable/icon" android:label="@string/ws_app_name">
<uses-library android:name="android.test.runner" />
</application>
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.myapp.main"
android:label="My App Tests"/>
</manifest>
Xin hãy chia sẻ biểu hiện của bạn file .. –
@RajdeepDua Tôi đã thêm tệp kê khai của mình ngay bây giờ. –