天道酬勤,学无止境

How can I reference unit test classes of a maven dependency in my java project? [duplicate]

I need to reference some JUnit Tests (src/test/java) from project B in the test package src/test/java of project A whereas B is a maven dependecy of A.

Is this even possible?

<dependency>
    <groupId>XYZ</groupId>
    <artifactId>B</artifactId>
    <version>${project.version}</version>
    <type>jar</type>
    <scope>test</scope>
</dependency> 

Both projects are under my controll.

Thanks for your advice

评论

Your pom in project B needs to include this plugin:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.5</version>
    <executions>
        <execution>
            <goals>
                <goal>test-jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Then, you can access it from project A like this:

<dependency>
    <groupId>XYZ</groupId>
    <artifactId>B</artifactId>
    <version>${project.version}</version>
    <type>test-jar</type>
    <scope>test</scope>
</dependency> 

Changing 'type' to test-jar allows you to access test classes from that dependency.

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 项目管理Maven系列(二)- 创建项目、POM文件、依赖机制、生命周期、定制库、外部依赖
    项目管理Maven系列(二) 创建项目、POM文件、依赖机制 生命周期、定制库、外部依赖 目录 1、创建Maven项目 1.1、命令行/终端创建 1.2、Eclipse创建 1.3、Java项目转Maven项目 2、POM文件 2.1、依赖 2.1.1、JUnit 2.1.2、TestNG 2.1.3、Selenium 2.1.4、Appium 2.1.5、OkHttp 2.1.6、HttpClient 2.1.7、JSON 2.1.8、ExtentReports 2.2、插件 2.2.1、maven-compiler-plugin 2.2.2、maven-surefire-plugin 2.3、远程仓库 3、依赖机制 4、构建生命周期 5、定制库到本地资源库 6、引用外部依赖 1、创建Maven项目 1.1、命令行/终端创建 1、在Widnows(命令行)或Mac(终端)中,本节以Widnows为例,打开命令行,进入到要创建Maven项目的文件夹里,输入命令(组ID为com.test.demo、项目ID为My_Maven_Demo): mvn archetype:generate -DgroupId=com.test.demo -DartifactId=My_Maven_Demo -DarchetypeArtifactId=maven-archetype-quickstart
  • Java9 多模块 Maven 项目测试依赖(Java9 Multi-Module Maven Project Test Dependencies)
    问题 我有一个多模块 maven 项目,其中包含三个模块core 、 utils和test-utils 核心具有以下依赖项定义 <dependency> <groupId>my.project</groupId> <artifactId>utils</artifactId> </dependency> <dependency> <groupId>my.project</groupId> <artifactId>test-utils</artifactId> <scope>test</scope> </dependency> 我为所有三个模块添加了 Java 9 module-info.java定义, core看起来像这样: module my.project.core { requires my.project.utils; } 但是我无法弄清楚如何让core的测试类能够在测试执行期间看到test-utils类。 当maven-surefire-plugin尝试测试运行时,我找不到类。 如果我添加一个requires my.project.testutils; 到core的module-info.java : module my.project.core { requires my.project.utils; requires my.project.testutils; /
  • Maven笔记(入门篇)
    1.1 入门 该笔记是观看黑马Maven教程所记,视频链接如下: https://www.bilibili.com/video/av52364221/ 1.1.1 使用Maven开发的优势 传统的项目中,由于含有较多的jar包,因此项目的大小非常庞大,而Maven则是考虑建立一个jar包的仓库,项目需要用到jar包的时候通过Maven程序去仓库里根据jar包的坐标去寻找,而这个jar包的仓库,就被称为Maven仓库,这样就能大大的减少项目的大小。一个传统的四十多Mb的项目使用Maven之后可能仅需要一百多kb。 jar包坐标的构成:公司名称 + 项目名称 + 版本信息 1.1.2 Maven的两大核心 依赖管理:也就是对jar包的统一管理项目构建:在项目编码完成后,原先通过IDE对项目进行编译、测试、打包、部署等一些列操作,都可以通过Maven的命令去完成 1.1.3 Maven安装和相关运行配置 首先去Apache官网http://maven.apache.org/download.cgi下载压缩包,并解压到无中文路径的磁盘位置 Maven目录结构了解 Maven采用纯Java开发,因此需要配置环境变量 名称:MAVEN_HOME 变量值:D:\Maven\apache-maven-3.5.2(配置到bin目录的上一级) 将配置好的MAVEN_HOME配置到Path变量中去
  • eclipse使用maven总结
    eclipse使用maven教程 文章目录 eclipse使用maven教程 0.什么是maven1.maven下载与安装与配置 1.1下载1.2安装1.3配置环境变量2.在eclipse中配置 2.1 m2eclipse安装2.2配置eclipse3创建一个maven项目 3.1项目的结构3.2Eclipse中maven常用的命3.3使用maven命令 0.什么是maven 参考 https://www.cnblogs.com/whgk/p/7112560.html 我们开发一个项目,或者做一个小demo,比如用SSH框架,那么我们就必须将SSH框架所用的几十个依赖的jar包依次找出来并手动导入,超级繁琐。 上面问题的描述,其实都属于项目与项目之间依赖的问题[A项目使用SSH的所有jar,就说A项目依赖SSH],人为手动的去解决,很繁琐,也不方便,所以使用maven来帮我们管理 Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具[百度百科] 这种又是大白话,如果没明白maven是什么,那么上面这句话跟没说一样,我自己觉得,Maven的核心功能便是合理叙述项目间的依赖关系,通俗点讲,就是通过pom.xml文件的配置获取jar包,而不用手动去添加jar包,而这里pom
  • Maven学习与理解(彻底理解Maven)
    文章目录 Maven学习与理解Maven 安装官网下载Mac上下载安装验证是否安装成功在IDE上配置Maven 快速创建Maven项目及了解Maven项目标准结构Maven生命周期场景Lifecycle-生命周期划分Phrase-阶段划分执行某个阶段 Maven阶段(phrase)与目标(goal)Maven插件插件使用举例在pom文件中配置插件(pluginmanagent和plugins区别)如何跳过单元测试? Maven pom文件结构pom文件基本结构pom依赖version管理pom文件的依赖管理(dependencyManagent和dependencies的区别)引用不同依赖,都有不同的版本的某些依赖怎么处理?dependency中的scope继承和聚合 Maven常见场景需求如何使用Maven命令快速搭建一个Maven项目脚手架?如何使用Maven命令快速搭建一个多模块-module的Maven项目脚手架?如何过滤resource下的一些文件?如何跳过单元测试?Maven默认打包命令打出的jar包时可以通过java -jar执行的吗?如何打出可执行的jar包?(或者java -jar执行jar包时出席那没有主清单属性如何处理)如何分析Maven项目的依赖关系?如何部署jar包到本地仓库?如何部署jar包到远程仓库?(Maven私服)第一种方式第二种方式
  • 使用Maven运行Spock单元测试(Running spock unit tests with Maven)
    问题 在以前的项目中,我使用Spock测试框架对Java代码进行单元测试。 我发现这确实很有用,所以我试图将Spock测试添加到当前项目中,该项目使用Maven作为其构建工具(之前的项目使用Gradle)。 虽然我可以让Maven编译我的Spock测试(使用groovy-eclipse-compiler ),但我无法让Maven运行测试。 我已经做了一个简单的示例,用2个文件来演示我的问题: pom.xml src/test/java/ASpec.groovy pom.xml内容: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>my.group</groupId> <artifactId>my-artifact</artifactId> <version>0.1-SNAPSHOT</version> <dependencies>
  • Reference to findViewById() is ambiguous when running unit test
    this morning I updated Android Studio to the latest stable 3.x build, together with support libraries, buildTools version and the new gradle plugin I managed to get everything work (with a lot of pain dure to the new gradle plugin), but now I have a problem which I can't really understand: The project compiles, and the unit tests of PROJECT1 and PROJECT2 run fine, but when I try to run unit tests of main project, I get this error: Error:(40, 30) error: reference to findViewById is ambiguous both method findViewById(int) in Activity and method findViewById(int) in AppCompatActivity match where
  • 运行单元测试时对 findViewById() 的引用不明确(Reference to findViewById() is ambiguous when running unit test)
    问题 今天早上我将 Android Studio 更新到最新的稳定版 3.x 版本,以及支持库、buildTools 版本和新的 gradle 插件 我设法让一切正常工作(新的 gradle 插件带来了很多痛苦),但现在我遇到了一个我无法真正理解的问题: 项目编译,PROJECT1 和 PROJECT2 的单元测试运行良好,但是当我尝试运行主项目的单元测试时,出现此错误: 错误:(40, 30) 错误:对 findViewById 的引用不明确 这仅在我尝试运行测试时发生,应用程序(我使用大量调用 findViewById() )工作正常。 我应该去哪里解决问题? buildToolsVersion: 27.0.1 support repository version: 27.0.2 targetSdkVersion: 27 compileSdkVersion: 27 minSdkVersion: 19 这是发生问题的一段代码 @Before public void setUp() { super.setUp(); ChangePasswordActivity mActivity = Robolectric.setupActivity(ChangePasswordActivity.class); mPasswordBox = mActivity.findViewById(R.id
  • 带有Maven和Eclipse的Java动态Web项目(Java Dynamic Web project with Maven and Eclipse)
    问题 关于使用Maven和Eclipse创建Java Web应用程序,我有几个问题: 如何使用Maven创建带有servlet,jsp和其他类的Java Web项目? 它创建一个简单的目录结构,src-> main-> java。 我在哪里以及如何放置web-inf文件夹? 我需要手动将jdbc驱动程序添加到web-inf / lib内的文件夹中,还是可以指出依赖项? 有没有一种方法可以用junit测试servlet? 回答1 哇,一次有很多问题。 我承认使用Maven和Eclipse设置webapp项目可能很棘手,因此我将尽力回答所有这些问题。 使用Maven创建Web应用程序项目 如何使用Servlet JSP和Maven其他类创建Java Web项目? 它创建一个简单的目录结构,src-> main-> java。 在创建Java Web项目时,最终产品应该是WAR或EAR文件。 WAR和EAR文件是具有特定结构的JAR文件,可以将其部署在应用程序服务器或servlet容器中。 如前所述,为Web应用程序设置Maven项目的最简单方法是使用原型: mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp 如果我们使用这种原型创建一个项目,那么将生成一个简单的目录结构和pom.xml。
  • 类 className 是否必须编码在 className.java 中?(Is it necessary that class className must be coded in className.java?)
    问题 我正在使用 maven 构建项目并编译失败,因为我将类Test2放在Test.java , 但是是因为 maven 还是仅仅因为 java 本身不支持这个? 顺便说一句,我怎样才能用 Eclipse 打开一个 Maven 项目? 回答1 一个名为ClassName的public类(在大多数情况下)必须在名为ClassName.java的文件中定义。 编辑 尽管这不是 Java 语言的要求,但大多数(如果不是全部)Java 实现,必须保持上述类名和文件名之间的关系,否则将导致编译器错误。 (有关更多信息,请参阅 Jon Skeet 的回答。) 原因可以通过阅读第 7.2 节:Java 语言规范第三版的包找到。 在本节中,它描述了如何将目录结构映射到 Java 中的完全限定类名,这导致包含类字节码的.class文件必须驻留在类似于完全限定的类名。 错误地指出命名方案是一项要求的原始答案已被编辑。 回答2 Java 语言规范本身实际上并不要求这样做——但它明确允许基于文件系统的实现这样做,而且大多数都这样做。 来自第 7.6 节: 当包存储在文件系统中时(第 7.2.1 节),如果在由类型名称加如果以下任一情况为真,则为扩展名(例如 .java 或 .jav): 该类型由声明该类型的包的其他编译单元中的代码引用。 该类型被声明为 public(因此可以从其他包中的代码访问)。
  • 枚举的 Maven 包不存在(Maven package does not exist for enum)
    问题 我的目标: - 我想将一个API 测试框架X代码(一个 maven 项目)转换成一个jar ,可以在另一个API 测试框架中使用Y - 这个jar将被部署到 Nexus - 我想要一个jar的框架X的测试和主要类 从SO 中,我了解到您不能将它们组合成一个jar ,因此您必须将它们放在单独的 Jars 中。 我相应地修改了POM 。 使用此命令时出现编译错误: mvn clean install -DskipTests 错误片段: [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] /C:/main/projectX/src/main/java/com/myapp/core/EnumUserClass.java:[8,46] package com.myapp.testutils.ClassWithEnum does not exist [ERROR] /C:/main/projectX/src/main/java/com/myapp/core/EnumUserClass.java:[226,6] cannot find symbol symbol: class EnumUserClass location: class
  • Spring Boot2 系列教程 (二) | 第一个 SpringBoot 工程详解
    微信公众号:一个优秀的废人 如有问题或建议,请后台留言,我会尽力解决你的问题。前言哎呦喂,按照以往的惯例今天周六我的安排应该是待在家学学猫叫啥的。但是今年这种日子就可能一去不复返了,没法办法啊。前几天年轻,立下了一周至少更两篇文章的 flag 。废话少说,今天接着前文给你们带来了第一个 SpringBoot 工程的详解。第一个 SpringBoot 工程前文已经说过了 SpringBoot 工程的创建,这里不再赘述,还不会的朋友,请看下面这篇文章。如何使用 IDEA 构建 Spring Boot 工程学过编程的都知道,学习一门新语言的第一个项目肯定是 Hello World 。那这里也不例外,我们先创建一个非常简单的 Hello World 工程。给大家讲解 SpringBoot 的项目目录。创建信息如下:由于本文重点旨在讲解 SpringBoot 的项目目录。所以选择的依赖包非常简单,就选择 Web 足矣。SpringBoot 项目目录详解创建成功之后的 SpringBoot 项目目录如下,以下对各主要目录的作用进行讲解:src 是整个工程的根目录,基本上做 web 开发你的代码大部分都放在这里。其中 main 目录下放置的是你的 Java 代码;resource 目录,顾名思义就是放置配置文件、静态资源( static )以及前端模板( template )。test
  • 使用 PlayN 框架,我如何在我的项目中包含单元测试?(With PlayN framework, how can I include unit tests in my project?)
    问题 现在,我一直在维护第二个沙盒项目,我在其中测试概念并克服障碍。 但这不是很有效,因为我最终不得不复制大量代码并且无法为我的游戏维护一组持久的回归测试。 我的项目中确实有一个单元测试文件夹,但是无法测试框架本身的组件,因为它们依赖于特定于平台的实现,而这些实现对进行开发的核心分支不可用。 我找到了 PlayN 框架的一组测试。 是否可以利用这些来测试自己的项目? 是否可以在一个项目中包含两个游戏类? 我看到这里提出了这个问题,但它从未真正得到令人满意的答复。 回答1 您无法轻松编写针对 PlayN 支持的不同后端运行的单元测试。 显然,在 Android 手机或 iOS 设备上自动运行单元测试将是一个相当大的挑战。 但是,您可以非常轻松地编写针对 Java 后端运行的单元测试。 我通常构建我的项目,使我的核心子模块对play n-java具有test依赖性,然后我使用playn-java后端运行我的单元测试。 我发现它工作得相当好,虽然我通常不会测试很多直接与 PlayN 交互的东西,因为很难对可视代码进行单元测试。 我单元测试的东西很少会调用 PlayN。 您还可以针对 HTML5 后端进行单元测试,但它确实很慢。 看看 HTMLUnit。 [编辑:由于我反复回答这个问题,我将在此处添加有关如何配置项目以针对 Java 后端运行单元测试的说明] 将 playn-java
  • Maven学习笔记_IDEA中使用Maven
    Maven学习笔记 文章目录 Maven学习笔记前言Maven的简介Maven的优点Maven构建项目的步骤maven使用方式:Maven的核心概念:Maven的下载与安装Maven约定规则2.Maven仓库仓库概念修改仓库地址仓库的使用 坐标(gav)依赖Junit单元测试Maven的常用命令 在IDEA中使用Maven在IDEA中配置MavenIDEA中创建java项目:maven-archetype-quickstart 模块创建java项目:IDEA中创建web项目:maven-archetype-webapp 模块创建web项目IDEA中导入Maven项目(module) 依赖管理Maven常用设置全局变量使用资源插件在idea中使用maven,Dependecies报红 模拟打包好的项目在其他服务器(tomcat)运行常用CMD命令:查找端口号,关闭进程 前言 在学习框架前,花了点时间学习了maven并且在学习过程中把相关知识整理成了笔记供日后重温,需要转载请标明博客地址 Maven的简介 Maven是Apache的一款自动化构建工具,服务于Java平台的项目构建和依赖管理,Maven本意是内行,专家,而在学习Maven后才了解到它的强大,无愧内行、专家的原意。 Maven的优点 传统的开发项目问题: 模块多,模块之间相互关联,人工管理这些关系,工作量比较大且繁杂
  • Maven学习笔记
    #Maven 自动化的构建工具 第一章 Maven简介 1.1 软件开发中的阶段 需要分析: 分析项目具体完成的功能,有什么要求, 具体怎么实现。 设计阶段:根据分析的结果, 设计项目的使用什么技术, 解决难点。 开发阶段:编码实现功能。 编译代码。自我测试 测试阶段:专业的测试人员,测整个项目的功能十分符合设计要求。出一个测试报告。 项目的打包,发布阶段: 给用户安装项目 1.2 Maven能做什么 1)项目的自动构建,帮助开发人员做项目代码的编译,测试, 打包,安装,部署等工作。 2)管理依赖(管理项目中使用的各种jar包)。 ​ 依赖:项目中需要使用的其他资源, 常见的是jar 。 比如项目要使用mysql驱动。我们就说项目依赖mysql驱动。 1.3 没有使用maven怎么管理依赖 管理jar ,需要从网络中单独下载某个jar 需要选择正确版本 手工处理jar文件之间的依赖。 a.jar里面要使用b.jar的类。 1.4 什么是maven maven是apache基金会的开源项目,使用java语法开发。 Maven 这个单词的本意是:专家,内行。读音是['meɪv(ə)n] 或 ['mevn]。 maven是项目的自动化构建工具。 管理项目的依赖。 1.5 maven中的概念 ①POM ②约定的目录结构 ③坐标 ④依赖管理 ⑤仓库管理 ⑥生命周期 ⑦插件和目标 ⑧继承
  • Spring Boot2 系列教程 (二) | 第一个 SpringBoot 工程详解
    前言哎呦喂,按照以往的惯例今天周六我的安排应该是待在家学学猫叫啥的。但是今年这种日子就可能一去不复返了,没法办法啊。前几天年轻,立下了一周至少更两篇文章的 flag 。废话少说,今天接着前文给你们带来了第一个 SpringBoot 工程的详解。第一个 SpringBoot 工程前文已经说过了 SpringBoot 工程的创建,这里不再赘述,还不会的朋友,请看下面这篇文章。如何使用 IDEA 构建 Spring Boot 工程学过编程的都知道,学习一门新语言的第一个项目肯定是 Hello World 。那这里也不例外,我们先创建一个非常简单的 Hello World 工程。给大家讲解 SpringBoot 的项目目录。创建信息如下:由于本文重点旨在讲解 SpringBoot 的项目目录。所以选择的依赖包非常简单,就选择 Web 足矣。SpringBoot 项目目录详解创建成功之后的 SpringBoot 项目目录如下,以下对各主要目录的作用进行讲解:src 是整个工程的根目录,基本上做 web 开发你的代码大部分都放在这里。其中 main 目录下放置的是你的 Java 代码;resource 目录,顾名思义就是放置配置文件、静态资源( static )以及前端模板( template )。test 目录就是放置你的单元测试代码。target 就是项目编译生成的目录
  • 使用android-maven-plugin在Eclipse中进行简单的非API Android JUnit测试?(Simple non-API Android JUnit test in Eclipse with android-maven-plugin?)
    问题 我每天都在Eclipse中运行非Android JUnit测试。 今天,我想测试一些我的Android库类。 哦,好痛。 我有一个使用android-maven-plugin的Android库项目。 我在src/main/java有源文件,而我的(新)单元测试在src/test/java 。 我的POM具有适当的JUnit依赖关系和android-maven-plugin引用。 有时我从File创建一个Android Uri实例。 有时,我有一个现有的Java URI实例,该实例是从File创建的,然后将其转换为Uri 。 由于我不信任Java和Android都使用文件和URI(不要让我开始了解Java如何处理URI中的UNC路径,或者Java如何破坏URI中的equals()协定),所以我想创建一个简单的单元测试来创建一个临时文件,用两种不同的方法创建Uris ,并确保它们相等。 因此,我像以前一样进行了一些JUnit单元测试,并尝试使用Ctrl+F11在Eclipse中运行它。 Eclipse询问我这是“ Android JUnit测试”还是“ JUnit测试”。 好吧,显然是Android。 因此,我选择第一个选项并得到: [2013-03-23 21:37:10 - mylib] ------------------------------ [2013-03-23
  • JUnit5学习之一:基本操作
    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于《JUnit5学习》系列 《JUnit5学习》系列旨在通过实战提升SpringBoot环境下的单元测试技能,一共八篇文章,链接如下: 基本操作Assumptions类Assertions类按条件执行标签(Tag)和自定义注解参数化测试(Parameterized Tests)基础参数化测试(Parameterized Tests)进阶综合进阶(终篇) 本篇概览 本文是《JUnit5学习》系列的第一篇,通过实战学习在SpringBoot框架下JUnit5的基本功能,全篇章节如下: JUnit5简介SpringBoot对JUnit5的依赖常用注解简介5版本已废弃的注解介绍进入实战环节,先介绍版本和环境信息创建《JUnit5学习》系列源码的父工程创建子工程,编码体验常用注解 关于JUnit5 JUnit是常用的java单元测试框架,5是当前最新版本,其整体架构如下(图片来自网络): 从上图可见,整个JUnit5可以划分成三层:顶层框架(Framework)、中间的引擎(Engine),底层的平台(Platform);官方定义JUnit5由三部分组成:Platform、Jupiter、Vintage,功能如下;Platform
  • Maven 集成测试在相同的包结构中找不到我的类(Maven integration-test doesn't find my class in same package structure)
    问题 这是我的文件: Pom 父母: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>my.group</groupId> <artifactId>my.artifact.pom</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <modules> <module>my.artifact.ws</module> </modules> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.2.RELEASE</version> </parent> <properties> <
  • Running spock unit tests with Maven
    On a previous project I used the Spock testing framework to unit test my Java code. I found this really productive so I am trying to add Spock tests to my current project which uses Maven as its build tool (The previous project used Gradle). While I can get Maven to compile my Spock tests (using groovy-eclipse-compiler), I am unable to get Maven to run the tests. I've made a simple example to demonstrate my problem with 2 files: pom.xml src/test/java/ASpec.groovy Contents of pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi