首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨不同java项目重用JUnit 5 @ArgumentsSource参数化测试类

跨不同java项目重用JUnit 5 @ArgumentsSource参数化测试类
EN

Stack Overflow用户
提问于 2022-09-06 11:20:17
回答 1查看 74关注 0票数 -1

下面是maven java项目:

  1. com.validator
  2. com.demoModel1
  3. com.demoModel2

Validator项目包含验证代码,jar被demoModel1demoModel2项目用于执行验证。为了执行验证,在demoModel1和demoModel2项目中,我必须编写JUnit测试用例,但是这些测试用例是相似的,除了它们作为参数的不同索引。由于这个原因,我创建了一个名为ExecuteSimulation的参数化测试类。

代码语言:javascript
复制
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.ArgumentsProvider; 
   
public class ExecuteSimulation implements ArgumentsProvider {}

现在,我必须在ExecuteSimulation demoModel1和demoModel2项目中创建这个类。但是我想在ExecuteSimulation demoModel1和demoModel2项目中重用这个类。我试图将ExecuteSimulation类放到com.validator项目中。如果我将类放在com.validator项目的src/java文件夹中,就会产生错误,抱怨没有找到junit依赖项

如果我将ExecuteSimulation类放在com.validator项目的src/test文件夹中,并尝试在demoModel1demoModel2中使用,则这两个项目都会产生错误,抱怨找不到来自com.validator项目的ExecuteSimulation类的引用。我想是因为src/test的位置。

在这方面,在不同的maven java项目中重用这个参数化测试类的正确方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-08 05:04:03

您想要实现的目标在Maven JAR插件文档(“如何创建包含测试类的jar”)中进行了描述。你基本上有两种选择:

  1. 使用现有模块的测试类(基于jartest-jar构建)创建一个单独的src/test文件。
  2. 使用测试中使用的类创建一个单独的模块(基于本模块中的src/java构建)。

这两种方法都将产生一个jar文件,该文件应该作为一个依赖项导入到具有test作用域的其他模块中。如果您决定采用第二种方法,像JUnit这样的依赖项在这个新模块中不会有一个test作用域,但是它们将仅在导入它们的模块中与此作用域一起使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73621171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档