我目前正在使用Android Studio版本1.0.2。我已经创建了几个类,让Android Studio为我生成了一些JUnit 4测试框架。当我生成这些测试时,它告诉我在模块中找不到JUnit4库。有一个按钮说“修复”,所以我点击它,它允许我创建一个新的测试。我也检查了git,它似乎没有改变任何其他文件。
我在尝试运行这些测试时似乎遇到了错误。
这是我的测试看起来
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库。
答案 0 :(得分:2)
我有一个类似的问题,并通过从junit-4x中排除hamcrest-core
模块来解决这个问题。
androidTestCompile('junit:junit:4.10') {
exclude module: 'hamcrest-core'
}
androidTestCompile 'org.hamcrest:hamcrest-all:1.3'
答案 1 :(得分:-3)
我遇到了同样的问题。 我按照以下方式解决了: