我尝试使用gradle实现简单的junit测试,并在运行gradle test
时遇到以下问题:
:compileJava
/Users/wogsland/Projects/gradling/src/test/CalculatorTest.java:1: error: package org.junit does not exist
import static org.junit.Assert.assertEquals;
^
/Users/wogsland/Projects/gradling/src/test/CalculatorTest.java:1: error: static import only from classes and interfaces
import static org.junit.Assert.assertEquals;
^
/Users/wogsland/Projects/gradling/src/test/CalculatorTest.java:2: error: package org.junit does not exist
import org.junit.Test;
^
/Users/wogsland/Projects/gradling/src/test/CalculatorTest.java:5: error: cannot find symbol
@Test
^
symbol: class Test
location: class CalculatorTest
/Users/wogsland/Projects/gradling/src/test/CalculatorTest.java:9: error: cannot find symbol
assertEquals(6, sum);
^
symbol: method assertEquals(int,int)
location: class CalculatorTest
5 errors
:compileJava FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':compileJava'.
Compilation failed; see the compiler error output for details.
所以我收到了这个build.gradle
文件:
apply plugin: 'java'
dependencies {
testCompile 'junit:junit:4.12'
}
sourceSets {
main {
java {
srcDir 'src'
}
}
}
CalculatorTest.java
:
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class CalculatorTest {
@Test
public void evaluatesExpression() {
Calculator calculator = new Calculator();
int sum = calculator.evaluate("1+2+3");
assertEquals(6, sum);
}
}
但是当我将它包含在依赖项中时,我无法弄清楚为什么它没有找到junit。
答案 0 :(得分:34)
显然我需要添加compile
依赖项,然后声明repositories
。我成功运行测试的新build.gradle
:
apply plugin: 'java'
repositories { jcenter() }
dependencies {
testCompile 'junit:junit:4.12'
compile 'junit:junit:4.12'
}
sourceSets {
main {
java {
srcDir 'src'
}
}
}
答案 1 :(得分:0)
尝试添加
repositories {
maven { url 'http://repo1.maven.org/maven2' }
直接在您的buildscript {在build.gradle
下答案 2 :(得分:0)
我知道这很老,但是最近遇到了这个问题。您应该能够更改srcdirs以使用gradle进行测试,并且还可以进行单元测试。如果要使用src / *结构,则只需将所有测试放在test / *中。
您可能遇到的问题是,如果将测试包含在main / java代码文件夹中,它将在该阶段尝试编译它们。将它们移到src文件夹之外,并相应地更新srcdir结构,它应能按预期工作。
apply plugin: 'java'
repositories { jcenter() }
dependencies {
testCompile 'junit:junit:4.12'
}
sourceSets {
main {
java {
srcDir 'src'
}
}
test {
java {
srcDir 'test'
}
}
}
答案 3 :(得分:0)
我在最新的android版本中存在相同的问题,并且已使用以下代码解决了该问题。希望您能获得帮助。
dependencies {
testImplementation 'junit:junit:4.12'
implementation 'junit:junit:4.12'
}
答案 4 :(得分:0)
在您的build.gradle文件中添加以下依赖关系:
testImplementation 'junit:junit:4.12'
implementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support:support-annotations:28.0.0'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test:rules:1.0.2'
这解决了我的问题。希望这也会对您有用。