【问题标题】:How do I move JUnit classes into a package?如何将 JUnit 类移动到包中?
【发布时间】:2018-11-17 14:20:50
【问题描述】:

我正在开发一个 Java 项目,目前已设置 JUnit 4 来运行一些单元测试。

在这个 makefile 中:https://github.com/bprollinson/larp/blob/master/Makefile 我正在使用“测试”目标来运行测试。这很好用。

但是,我想将单元测试的目录结构从平面(全部在 src/test 中)更改为镜像应用程序代码目录结构。应用程序目录结构目前看起来像:

src/main/larp/parser/contextfreelanguage src/main/larp/parser/regularlanguage src/main/larp/parsertree/regularlanguage ...

我尝试将一个测试类移动到这个目录结构中,然后在文件顶部添加适当的命名空间声明(例如,将 src/tests/DFATest.java 移动到 src/test/larp/automaton 并添加“包larp.automaton;" 在顶部)。

但是,它会产生以下错误: 找不到类 [类名]

为了让 JUnit 绑定到单元测试类中的命名空间,我需要做些什么特别的事情吗?

【问题讨论】:

  • 关于包和可见性,测试代码和测试代码没有区别。相同的规则。但请阅读minimal reproducible example 并相应地增强您的问题。
  • 检查您的项目位置并找到您的 .class 文件,然后编辑并提及目录结构而不是 src/test
  • @GauravRai1512 您的评论很有帮助。通过显式编译子目录中的文件,然后在运行时在类名的前缀中添加 larp.automaton ,我能够在某种程度上得到它。我只是想知道是否有更好的方法来处理添加前缀而不必使用 find 命令和操作路径字符串。
  • 当然。诀窍在于理解简单编译测试文件的基本要求,然后在运行测试时使用点分隔符在类名前面加上命名空间。

标签: java junit junit4


【解决方案1】:

检查您的项目位置并找到您的 .class 文件,然后编辑并提及新的目录结构而不是 src/test。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2017-04-29
    • 1970-01-01
    • 2013-12-30
    • 2017-12-25
    • 2011-01-24
    相关资源
    最近更新 更多