【问题标题】:How to add classpaths for unit tests in maven ?如何在 Maven 中为单元测试添加类路径?
【发布时间】:2014-11-14 06:41:32
【问题描述】:

我正在使用 maven 制作一个简单的应用程序并为其编写单元测试。我不熟悉使用 maven 以及使用 Junit 编写单元测试。

我的目录结构如下:-

我的项目中使用的源代码类在目录中:-

project-name/src/main/java/com/somename/app/packagename

主文件(包含静态主方法)位于:-

project-name/src/main/java/com/somename/app/App.java

Maven提供的默认单元测试在:-

project-name/src/test/java/com/somename/app/AppTest.java

现在,我在上面的目录(其中 AppTest.java)中添加了一个单元测试,这个单元测试需要访问上面描述的“packagename”目录中定义的类。

如果它是一个简单的命令行,我会在编译和运行应用程序时将类路径添加到目录中。

我应该如何在 Maven 中做同样的事情?另外,有没有其他方法可以直接在 maven 中添加类路径?

【问题讨论】:

  • 我认为在 maven 中运行单元测试用例不需要任何类路径设置。如果您的项目与您定义的结构相同,那么 maven 将在您每次构建项目时运行测试用例(可以使用 -options 关闭)。让我知道我是否偏离了这个问题。
  • @ppuskar 我也期待同样的结果,但问题正是我上面所说的。
  • @ps06756 您下面的 cmets 显示问题中缺少信息。请编辑问题以包含缺失的信息。

标签: java unit-testing maven junit


【解决方案1】:

当使用 Maven Standard Directory Layout(我总是推荐它,因为 Maven 都是关于约定的)时,以下目录在运行测试时始终是类路径的一部分:

src/main/java
src/main/resources
src/test/java
src/test/resources

因此无需手动调整任何东西来运行测试。 mvn test 命令只是做你想做的事。

【讨论】:

  • 先生,我也预料到了,但是错误还是来了,当我尝试在 src/main/java 中导入相关包时,它给了我包没有的编译器错误存在。
  • 您能否提供更多详细信息...如果软件包位于正确的位置,请尝试右键单击项目-> maven->更新项目。它会更新您的项目,可能会对您有所帮助
  • @ObuliSundar 我正在从终端构建我的项目
  • @ps06756 "[...] but the error is still come [...]" 什么错误?您没有在问题中描述任何错误。请不要将其他信息放入 cmets,而是相应地编辑您的问题。
  • @Seelenvirtuose 好的,最后通过在相关文件中写入完整的包名解决了错误,对于编辑部分我会记住这一点,从下一次开始。
【解决方案2】:

Maven 目录结构总是添加在类路径中。如果您使用的是 eclipse,只需运行 as->maven build。(确保已安装 maven 插件)否则您可以直接使用 mvn clean , mvn install 命令在 maven 中构建项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    • 2021-12-12
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 2011-01-11
    相关资源
    最近更新 更多