在项目中找不到测试类 - “启动配置的输入类型不存在”

Posted

技术标签:

【中文标题】在项目中找不到测试类 - “启动配置的输入类型不存在”【英文标题】:Cannot find test class in project - "The input type of the launch configuration does not exist" 【发布时间】:2021-10-14 19:17:25 【问题描述】:

我正在为我的项目使用 TestContainers,但是当我在 Eclipse 中运行测试时,我遇到了以下错误

在这个窗口的顶部,它还给出了一个特定的错误,上面写着 Cannot find test class "DBInitTest" in project "myProject"

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 有问题。

我在网上查了一下,但只发现了一些说我应该右键单击源文件夹 --> 构建路径 --> 用作源路径,但这个修复似乎没有为我工作。

【问题讨论】:

【参考方案1】:

我不是专家,无法解释为什么这会解决任何问题,但是:-

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

折腾了一阵子(重新安装 STS、lombok ...)后,我最终点击了弹出的错误条目。我为无法运行的测试“编辑 lauch 配置属性”。

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

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

更新

现在我觉得很傻。

我在名为“AdminTaskControllerMockMvcTests.java”的文件中有一个名为“AdminTaskControllerMockMvcTest”的测试类,即类名末尾带有“s”。

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

问候,安德鲁

【讨论】:

【参考方案2】:

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

我的项目结构是这样的:

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

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

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

解决步骤:

    关闭当前打开的项目,即ma​​in_project 在你的IDE中点击Open Project 导航到子项目的文件夹,即 myProject 并在 IDE 中打开它 瞧,错误现在消失了。 ;)

【讨论】:

以上是关于在项目中找不到测试类 - “启动配置的输入类型不存在”的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse 3.2.2 内容辅助在项目中找不到类

在我的 android studio 项目中找不到符号类 FirebaseInstanceId

在 kotlin 中找不到我的 GitLab CI 测试

TestNG 错误在类路径中找不到类

在 Laravel 5 单元测试中找不到特征

在使用 jest 的 vue 测试中找不到模块“@jest/globals”