带有JUnit4测试的Android Studio 1.0.2

时间:2015-01-04 08:58:39

标签: android junit android-studio junit4

我目前正在使用Android Studio版本1.0.2。我已经创建了几个类,让Android Studio为我生成了一些JUnit 4测试框架。当我生成这些测试时,它告诉我在模块中找不到JUnit4库。有一个按钮说“修复”,所以我点击它,它允许我创建一个新的测试。我也检查了git,它似乎没有改变任何其他文件。

Create Test JUnit4 library not found

我在尝试运行这些测试时似乎遇到了错误。

这是我的测试看起来

package com.example.username.shapes;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;

public class PointTest {
    @Rule
    ExpectedException expectedException = ExpectedException.none();

    @Test
    public void testGimmie() throws Exception {
        assertEquals(123456, Point.gimmie(55));

        expectedException.expect(IllegalArgumentException.class);
        Point.gimmie(-1);
    }
}

我遇到了一些无法解决符号'junit'的错误。在此之后,我进行了搜索并找到了之前的一些问题,但是对于1.0之前的Android Studio版本。我最终将androidTestCompile 'junit:junit:4.10'添加到我的应用构建文件中。

当我尝试运行测试时,出现错误

  

错误:(13,9)错误:找不到符号方法assertEquals(int,int)

我尝试评论该行并运行测试,但后来我收到此错误

  

错误:任务':app:dexDebugTest'执行失败。

     
    

com.android.ide.common.internal.LoggedErrorException:无法运行命令:       C:\ Users \用户名\下载\ ADT-束 - 窗口x86_64-20140624 \ SDK \构建工具\ 21.1.1 \ dx.bat     --dex --no-optimize --output C:\ Users \ username \ Documents \ GitHub \ ProjectName \ app \ build \ intermediates \ dex \ test \ debug     --input列表= C:\ Users \用户名\文件\ GitHub的\项目名\应用\构建\中间体\ TMP \ DEX \测试\调试\ inputList.txt     错误代码:2输出:意外的顶级异常:       com.android.dex.DexException:多个dex文件定义     Lorg / hamcrest /描述;在     com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)           在com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)           在com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)           在com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)           在com.android.dx.merge.DexMerger.merge(DexMerger.java:189)at     com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)           在com.android.dx.command.dexer.Main.runMonoDex(Main.java:302)at     com.android.dx.command.dexer.Main.run(Main.java:245)at     com.android.dx.command.dexer.Main.main(Main.java:214)at     com.android.dx.command.Main.main(Main.java:106)

  

有没有一个解决方案,有人可以指出或描述采取的步骤?我也很想知道是否还有另一种方法可以添加junit4库。

2 个答案:

答案 0 :(得分:2)

我有一个类似的问题,并通过从junit-4x中排除hamcrest-core模块来解决这个问题。

androidTestCompile('junit:junit:4.10') {
    exclude module: 'hamcrest-core'
}
androidTestCompile 'org.hamcrest:hamcrest-all:1.3'

答案 1 :(得分:-3)

我遇到了同样的问题。 我按照以下方式解决了:

  1. 打开窗口:构建变体
  2. 在“Test Artfact”中,选择“单元测试”
  3. 然后,您可以按照自己的方式创建测试。
  4. enter image description here enter image description here