如何在具有测试依赖性的maven项目中测试intellij中的单个测试模块?
情况如下: 我有2个模块,依赖于模块父模块的模块子模块。 我在PARENT中有一个测试类,可以在KID中使用它来测试类的实现 为此,我添加了以下依赖项:如何在具有测试依赖性的maven项目中测试intellij中的单个测试模块?,maven,testing,intellij-idea,Maven,Testing,Intellij Idea,情况如下: 我有2个模块,依赖于模块父模块的模块子模块。 我在PARENT中有一个测试类,可以在KID中使用它来测试类的实现 为此,我添加了以下依赖项: <dependency> <groupId>myGroup</groupId> <artifactId>PARENT</artifactId> <version>${project.version}</versi
<dependency>
<groupId>myGroup</groupId>
<artifactId>PARENT</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
myGroup
父母亲
${project.version}
试验罐
测试
使用maven,测试运行良好
使用Intellij(右键单击java测试文件夹并为KID运行“所有测试”),我得到一个NoClassDefFoundError。问题是来自两个模块的测试都在运行,但它只使用kid的依赖项
在项目父项中,我有一个在KID中不需要的依赖项:
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.8</version>
<scope>provided</scope>
</dependency>
通用编解码器
通用编解码器
1.8
假如
将作用域设置为提供而不是测试将解决我的问题,但它允许主代码使用测试代码
我可能错过了什么?这是一只虫子 我在那里得到了答案:
这是因为运行配置是由模板创建的。
并且该模板具有跨模块依赖项拾取类的默认设置
在132.46中,以下内容对我有帮助:
1.打开“运行配置”对话框的“默认值”部分。
2.找到相应的模板。我试过JUnit。
3.“测试种类”组合,选择包中的全部。
4.设置“在单个模块中”。
5.应用以保存模板
之后,删除创建的配置并重复“运行所有测试”。它只为我从当前模块中选择类
IDEA中可能的改进是专门为基于Maven的项目修改这些默认值。相当具体的变化