eclipse java 测试_java-在Eclipse中“未找到JUnit测试”

在Eclipse中遇到'未找到JUnit测试'的问题,尝试多种解决方案,如:将测试文件夹设置为源文件夹、清理并重新构建项目、检查JUnit版本、确保测试类名以'test'开头、检查@Test注解是否缺失、添加JUnit4跑步器等。这些方法通常能解决此类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java-在Eclipse中“未找到JUnit测试”

因此,我是JUnit的新手,我们必须将其用于作业分配。 我们的教授给我们提供了一个具有一个测试类的项目BallTest.java。当我右键单击> Run as> JUnit Test时,出现一个弹出错误,提示“未找到JUnit测试”。 我知道这里已经回答了这个问题(测试运行程序“ JUnit 4”未找到测试),但是关闭Eclipse,重新启动,清理和构建似乎无效。 下面是我的运行配置,构建路径和我要测试的类的屏幕截图。

dU1T6.jpg

aPjIY.jpg

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());

}

}

17个解决方案

64 votes

右键单击项目>属性> Java构建路径>将测试文件夹添加为源文件夹。

包括测试类在内的所有源文件夹都必须位于Eclipse Java Build Path中。 这样就可以将诸如主类和测试类之类的源代码编译到构建目录中(Eclipse的默认文件夹为bin)。

iaacp answered 2020-06-23T03:08:26Z

16 votes

如果没有其他答案对您有用,那么这就是对我有用的。

重新开始蚀

我为一个项目正确配置了源文件夹,并正确注释了单元测试,但仍收到“未找到JUnit测试”。 重新启动后,它可以工作了。 我正在使用基于Eclipse Luna 4.4.1的STS 3.6.2

khylo answered 2020-06-23T03:08:55Z

9 votes

右键单击->构建路径->从构建路径中删除然后再次添加它->右键单击名为“测试”的文件夹>“构建路径”>“用作源文件夹”。

Sagar answered 2020-06-23T03:09:15Z

6 votes

我有同样的问题,并这样解决:我删除了@Test注释并重新输入了它。它只是有效,我不知道为什么。

nikartix answered 2020-06-23T03:09:35Z

5 votes

看来您在测试类上缺少跑步者定义,这可能是原因:

import org.junit.runners.JUnit4;

@RunWith(JUnit4.class)

public class BallTest {

...

}

Klazen108 answered 2020-06-23T03:09:55Z

3 votes

右键单击您的项目->属性-> Java构建路径,然后转到“源”选项卡,然后添加测试src文件夹。

选择项目菜单,如果选择,则取消选择“自动构建”选项

选择“清理”,然后选择“自动构建”选项

重新启动Eclipse并运行您的junit。

Ranjith Sekar answered 2020-06-23T03:10:28Z

2 votes

在我更改测试方法的名称之前,任何解决方案都对我不起作用。 当测试方法的名称以“ test”开头时可以。我是android编程的新手,这对我来说是个很大的惊喜。

Igor Semkiv answered 2020-06-23T03:10:48Z

2 votes

我认为您已经在src文件夹之外创建了测试类。 您可以通过两种方式解决上述问题:

在package/class中添加您的软件包名称

将package/class移动到src文件夹中

我有同样的问题,并且以这种方式解决了两种解决方案都可以正常工作。

pintu answered 2020-06-23T03:11:21Z

2 votes

junit4要求测试类名应使用Test作为后缀。

jiahut answered 2020-06-23T03:11:41Z

1 votes

我通过配置构建路径解决了这个问题。右键单击项目(或任何子文件夹)->构建路径->配置构建路径。 打开属性窗口后,单击“源”选项卡并添加src和tst文件夹。但这本身对我没有用。奇怪的是,我不得不重新输入注释(尽管Project-> clean或restart也可能有效)。

ankit answered 2020-06-23T03:12:01Z

1 votes

在跨Eclipse版本升级项目时遇到了此问题。 例如 在Mars2.0中运行良好的junits不能在Neon上运行。 以下对我有用。

删除.settings文件夹。 将项目导入eclipse。

删除源文件夹。 然后再次使用这些文件夹作为源文件夹。 例如-从构建路径中删除src / main / java作为源文件夹。 ->确定->再次将此文件夹设为源文件夹。 对主要/资源,测试/ java,测试/资源重复此操作

Tushar Mishra answered 2020-06-23T03:12:31Z

1 votes

在Eclipse Photon中,您可能需要将JUnit 4或5添加到构建路径。 右键单击@Test并选择“添加JUnit 4以构建路径”。

Jim answered 2020-06-23T03:12:51Z

0 votes

测试类的运行配置可能会导致此问题的另一个原因(和解决方案)。

如果转到“运行(或调试)配置”(使用cmd-3或单击工具栏中的小下拉按钮),则可以看到为您使用过的每个测试类创建的配置。 我发现我无法启动的一个类具有运行配置,其中“测试方法”字段以某种方式被无意中填充。 我必须清除它才能使其正常工作。 清除后,它(所有方法)以浅色文本显示。

我会添加一个奇怪的东西-也许还有其他事情发生-在我也修复了“ Name”字段之前,它似乎也对我不起作用,以便它像其他JUnit运行配置一样仅包含类名。

Joshua Goldberg answered 2020-06-23T03:13:20Z

0 votes

我使用的是@RunWith(Parameterized.class),但没有在公共静态参数方法中添加@Parameters批注。 添加注释后,它可以工作。

Saikat Sengupta answered 2020-06-23T03:13:40Z

0 votes

解决此问题的最佳方法是为Junit测试用例类名称添加public Access修饰符,然后通过右键单击Junit测试用例类并以Junit Test身份运行来运行方案。

Kshitij Vashist answered 2020-06-23T03:14:00Z

0 votes

解决方案是,在备份src / test文件夹后,将其从文件系统中删除,然后再次创建它。

那是在我做了“从构建路径中删除”提示之后,它在STS 4中打开项目时弄糟了文件夹。

rsb2097 answered 2020-06-23T03:14:25Z

0 votes

试试这个

右键单击单元测试类,

选择“运行方式”->运行配置

在“测试”选项卡中,确保在“测试运行器”字段中选择下拉列表“ JUnit 4”

点击“应用”

现在运行测试!

Prakash Ayappan answered 2020-06-23T03:15:06Z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值