相关疑难解决方法(0)

用gradle测试一个android项目的junit测试

我试图让测试(junit和robolectric)在Android项目中工作,但我完全陷入困境.我的主要问题是我用gradle找到的所有测试都以某种方式拉入java插件然后我得到了这个错误:

The 'java' plugin has been applied, but it is not compatible with the Android plugins.
Run Code Online (Sandbox Code Playgroud)

我目前看到的唯一出路是分成测试和应用项目 - 但我想避免这种情况.任何示例/提示都将受到高度赞赏!

官方文档中没有提到单元测试 - 只有仪器测试 - 但我希望单元测试能够快速获得结果.

junit android junit4 gradle robolectric

26
推荐指数
2
解决办法
2万
查看次数

Android Instrumentation测试没有从库项目中找到类

所以我NoSuchMethodError从Android Studio运行我的Activity/instrumentation测试,在代码行上试图从单元测试中调用库模块中的方法.

所以这是我的测试:

public class MainActivityTest extends ActivityInstrumentationTestCase2 {
    public void testMainActivity() {
        final MainActivity target = (MainActivity) getActivity();
        MyLibarary.someStaticMethod(); // yields java.lang.NoSuchMethodError
}
Run Code Online (Sandbox Code Playgroud)

这是什么交易?我已经将我的库定义为build.gradle中的"编译" - 依赖,并且编译得很好.该库也可以从主应用程序类中调用而不会出现问题.只有当我从测试中调用它时才会失败.我的应用程序和我的测试都在同一模块中.

我已经尝试手动运行clean任务,assembleDebug和assembleDebugTest任务.徒劳无功.

项目结构:

Root
 |---MyApp 
 |     |---src/main/...
 |     |---src/androidTest/...
 |----MyLibrary
Run Code Online (Sandbox Code Playgroud)

运行Android Studio v1.0.2 Gradle构建工具v1.0.0使用默认的Instrumentation测试运行器从AS的Run/Debug配置作为模块"MyApp"上的"Android Test"运行.

android android-testing

5
推荐指数
1
解决办法
2879
查看次数

标签 统计

android ×2

android-testing ×1

gradle ×1

junit ×1

junit4 ×1

robolectric ×1