所以我是JUnit的新手,我们必须将它用于家庭作业。我们的教授给了我们一个有一个测试类BallTest.java
的项目。当我右键单击>以>运行JUnit Test,我收到一个弹出错误,上面写着“没有找到JUnit测试”。我知道这个问题已在这里得到解答(No tests found with test runner 'JUnit 4'),但关闭日食,重新启动,清理和构建似乎不起作用。下面是我的运行配置,构建路径以及我要测试的类的屏幕截图。
BallTest.java
import static org.junit.Assert.*;
import junit.framework.Assert;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class BallTest {
Ball ball;
/**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
System.out.println("Setting up ...");
Point2D p = new Point2D(0,0);
ball = new Ball(p);
}
/**
* @throws java.lang.Exception
*/
@After
public void tearDown() throws Exception {
System.out.println("Tearing down ...");
ball = null;
}
/**
* Test method for {@link Ball#getCoordinates()}.
*/
@Test
public void testGetCoordinates() {
assertNotNull(ball); // don't need Assert. because of the import statement above.
Assert.assertEquals(ball.getCoordinates().getX(), 0);
Assert.assertEquals(ball.getCoordinates().getY(), 0);
}
/**
* Test method for {@link Ball#setCoordinates(Point2D)}.
*/
@Test
public void testSetCoordinates() {
Assert.assertNotNull(ball);
Point2D p = new Point2D(99,99);
ball.setCoordinates(p);
Assert.assertEquals(ball.getCoordinates().getX(), 99);
Assert.assertEquals(ball.getCoordinates().getY(), 99);
}
/**
* Test method for {@link Ball#Ball(Point2D)}.
*/
@Test
public void testBall() {
Point2D p = new Point2D(49,30);
ball = new Ball(p);
Assert.assertNotNull(ball);
Assert.assertEquals(ball.getCoordinates().getX(), 49);
Assert.assertEquals(ball.getCoordinates().getY(), 30);
//fail("Not yet implemented");
}
public static void main (String[] args) {
Result result = JUnitCore.runClasses(BallTest.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
答案 0 :(得分:63)
右键单击Project>属性> Java构建路径>将Test文件夹添加为源文件夹。
包括测试类在内的所有源文件夹都需要位于Eclipse Java Build Path中。这样可以将main和test类等源代码编译到构建目录中(Eclipse默认文件夹是bin)。
答案 1 :(得分:15)
如果其他答案都不适合你,那么这对我有用。
重启eclipse
我正确配置了源文件夹,并且单元测试正确注释但仍然没有找到"没有找到JUnit测试",对于一个项目。重新启动后它工作。我使用的是基于eclipse Luna 4.4.1的STS 3.6.2
答案 2 :(得分:9)
右键单击 - >构建路径 - >从构建路径中删除 然后再添加它 - > 右键单击名为' Test'的文件夹。 >构建路径>用作源文件夹。
答案 3 :(得分:6)
我有同样的问题,并解决了这样的问题: 我删除了@Test注释并重新输入了它。 它刚刚起作用,我不明白为什么。
答案 4 :(得分:4)
看起来你错过了测试类中的跑步者定义,这可能是原因:
import org.junit.runners.JUnit4;
@RunWith(JUnit4.class)
public class BallTest {
...
}
答案 5 :(得分:3)
答案 6 :(得分:2)
我认为你已经在src文件夹之外创建了测试类。您可以通过两种方式解决上述问题:
在git
将您的http://myURL?price_rang=2%5E%5E99_5%5E%5E99
移至java build path->source
文件夹
我遇到同样的问题并以这种方式解决了两种解决方案都运行良好。
答案 7 :(得分:2)
junit4
要求测试类名应使用Test
作为后缀。
答案 8 :(得分:2)
在我更改测试方法的名称之前,任何解决方案都不适用于我。当测试方法的名称以" test"开头时没关系 我是android编程的新手,对我来说是个大惊喜。
答案 9 :(得分:1)
在Eclipse Photon中,您可能需要将JUnit 4或5添加到构建路径。右键单击@Test,然后选择“添加JUnit 4以构建路径”。
答案 10 :(得分:1)
我通过配置构建路径解决了这个问题。 右键单击项目(或任何子文件夹) - >构建路径 - >配置构建路径。打开属性窗口后,单击“来源”'选项卡并添加您的src和tst文件夹。 但仅此一点对我来说并不适用。 奇怪的是,我不得不重新输入注释。(Project-> clean或restart也可能有用)。
答案 11 :(得分:0)
在新的 Eclipse 工作区中导入项目,这解决了我的问题。
答案 12 :(得分:0)
答案 13 :(得分:0)
有时,当您在模块路径中添加Junit库时会发生。因此,在此处删除它并添加Class路径。
答案 14 :(得分:0)
右键单击Project> Properties> Java Build Path> Libraries> 选择类路径->添加库-> Junit->选择junit版本->完成->应用程序
答案 15 :(得分:0)
有时候,如果有很多Test文件,那么由于classpath参数长度的限制,Eclipse无法为所有库和路径传递-classpath选项。 要解决它,请转到运行
Configerations -> JUnit -> Your Project Config -> ClassPath -> Check "Use Temporary Jar Options"
至少它解决了我的问题。
答案 16 :(得分:0)
我在JUnit 5.4.2中也遇到了这个问题。我在gradle 5.3.1中使用Eclipse 2019-09。
所以我必须将这两个依赖项添加到具有正确配置的build.gradle文件中(testImplementation和testRuntimeOnly):
apply plugin: "java"
//enabled the Gradle’s native JUnit 5 support
test {
useJUnitPlatform()
}
testImplementation group: "org.junit.jupiter", name: "junit-jupiter-api", version: "${junitVer}"
testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: "${junitVer}"
答案 17 :(得分:0)
尝试一下
右键单击单元测试类,
现在运行测试!
答案 18 :(得分:0)
解决方案是,在备份src / test文件夹后,将其从文件系统中删除,然后再次创建。
那是在我提示“从构建路径中删除”提示之后,它在STS 4中打开项目时弄糟了文件夹。
答案 19 :(得分:0)
解决此问题的最佳方法是为Junit测试用例类名称添加public Access修饰符,然后通过右键单击Junit测试用例类并以Junit Test身份运行来运行方案。
答案 20 :(得分:0)
我使用的是$mime
,但错过了在公共静态参数方法中添加@RunWith(Parameterized.class)
注释。添加注释后,它有效。
答案 21 :(得分:0)
在跨Eclipse版本升级项目时遇到此问题。对于例如在Mars2.0中运行良好的junits没有在Neon上运行。以下对我有用。
答案 22 :(得分:0)
测试类的运行配置可以为此问题创建另一个原因(和解决方案)。
如果您转到运行(或调试)配置(使用cmd-3或单击工具栏中的小下拉按钮),您可以看到为您使用过的每个测试类创建的配置。我发现我的一个不能启动的类有一个运行配置,其中测试方法字段以某种方式无意中填充了。我必须明确这一点才能让它发挥作用。清除后,它会以浅色文本显示(所有方法)。
我会奇怪地补充一点 - 也许还有其他事情发生了 - 在我修复“Name”字段之前它似乎也不适合我,所以它只包含类名,就像其他JUnit运行配置一样