android - 运行 Android ActivityUnitTestCase 结果为 "RuntimeException: could not find test class"

标签 android

尝试生成一个简单的 ActivityUnitTestCase 来测试我的 Android 代码中的各种 fragment 。

public class MenuFragmentTest extends ActivityUnitTestCase<FragmentAdapter> {
    static {
        FragmentAdapter.setFragmentUnderTest(new MenuFragment());
    }

    public MenuFragmentTest() {
        super(FragmentAdapter.class);
    }

    public void testMenuOptions() {
        System.out.println(getActivity().findViewById(1));
    }
}

我试图用来测试应用程序中的 fragment 的通用 FragmentAdapter:

public class FragmentAdapter extends FragmentActivity {
    static Fragment fragmentUnderTest;

    public static void setFragmentUnderTest(Fragment fragmentUnderTest) {
        FragmentAdapter.fragmentUnderTest = fragmentUnderTest;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        LinearLayout ll = new LinearLayout(this);
        ll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
        setContentView(ll);

        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.add(fragmentUnderTest, null);

        fragmentTransaction.commit();
    }
}

主应用安装成功后,Android JUnit Test Runner 失败

java.lang.RuntimeException: Could not find test class.  Class: com.XXX.core.MenuFragment

为什么Test Runner找不到我运行的测试类?

最佳答案

显然测试包的名称确实很重要:

来自 http://developer.android.com/tools/testing/testing_android.html :

If the application under test has a package name of com.mydomain.myapp, then the Android tools set the test package name to com.mydomain.myapp.test

更改包检测 targetPackage 属性不足以让您在与被测 Activity 相同的包中创建测试,即使测试在单独的测试项目中也是如此。

关于android - 运行 Android ActivityUnitTestCase 结果为 "RuntimeException: could not find test class",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13102659/

相关文章:

java - 分别想要 recyclerView 的每个 View 的屏幕截图

android - 如何从 RecyclerView 项目中获取值(value)

java - 如何在Android中创建像Real Calc一样的科学计算器?

java - 如何清除 HttpAuthRequest 凭据

android - 如何以编程方式在android中获取广告ID

java - 使用 UrlConnection 逐行读取是否考虑换行?

android - 如何取消Android发布过程?

java - android 音频变得嘈杂响应时间

android - 无法解析 : com. google.android.gms :play-services-measurement:9. 0.2

android - 对话框不出现