在项目中找不到测试 class - "The input type of the launch configuration does not exist"

Cannot find test class in project - "The input type of the launch configuration does not exist"

我正在为我的项目使用 TestContainers,但是当我 运行 在 eclipse 中进行测试时,出现以下错误

除此 window 之外,它还给出了一个特定的错误,即 无法在项目“myProject” 中找到测试 class“DBInitTest”。

package org.ft.cdcp;

import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.*;
import org.testcontainers.containers.PostgreSQLContainer;
import org.testcontainers.utility.DockerImageName;
import org.testcontainers.junit.jupiter.Testcontainers;

@Testcontainers
public class DBInitTest {
    private final PostgreSQLContainer sqlContainer = new PostgreSQLContainer(DockerImageName.parse("postgres:alpine"));
    
    @BeforeEach
    public void setUp() {
        sqlContainer.start();
    }
    
    @Test
    @DisplayName("Initializing database container")
    public void initTest() {
        assertTrue(sqlContainer.isRunning());
    }
}

请注意,我已经检查并重新检查了依赖项,一切都完好无损,它们没有问题,只有 JUnit5 有问题。

我在网上查了一下,但只找到了一些内容,说我应该 右键单击源文件夹 --> 构建路径 --> 作为源路径,但是这个修复似乎对我不起作用。

我不是专家,无法解释为什么这个修复了,但是:-

今天我开始遇到与您报告的相同的问题。

折腾了一阵子(重装STS、lombok……)终于点开了弹出的错误入口。我为不会 运行.

的测试“编辑启动配置属性”

在那里,我点击了“测试 Class:”字段行中的“搜索”。

我从弹出的“测试选择”window中选择了正确的class。 (注意我认为的值与已经存在的值相同)

更新

现在我觉得很傻。

我在名为“AdminTaskControllerMockMvcTests.java”的文件中进行了名为“AdminTaskControllerMockMvcTest”的测试class,即class名称末尾有一个“s”。

将我的测试 class 重命名为“AdminTaskControllerMockMvcTests”解决了我所有的问题。

此致,安德鲁

所以我弄清楚了错误是什么。

我的项目结构是这样的:

└─main_project/
    ├─ myProject/
    └─ other_sub_project/

这听起来可能很愚蠢,但这绝对是初学者经常做的事情(就像我一样)。我已经在我的 IDE 中打开了 main_project 并且该项目中还有其他子项目。 DBIinitTest 位于名为 myProject.

的子项目中

我只是因为这个结构而收到错误。所以当我关闭项目并直接从IDE打开子项目时,错误消失了。

解决步骤:

  1. 关闭当前打开的项目即main_project
  2. 在 IDE
  3. 中单击 打开项目
  4. 导航到子项目的文件夹,即 myProject 并在 IDE
  5. 中打开它
  6. 瞧,错误现在消失了。 ;)