创建了一个子项目,运行测试类的时候就开始这个错了
osrep_OsReportConfig
这个类的定义方便发一下吗?
Jmix 版本是?
1.2.1
经过我的测试,感觉是子模块再依赖子模块,就会出现这个问题,
所以,你的意思是开发两个 add-on A 和 B,其中 B 依赖 A,然后在 B 中写测试代码会出现这个问题?这个出错的实体是在 A 还是 B 内?
出现在B内,
你好,我这边试了下,没有重现你的问题,我的步骤:
- 分别创建 Addon A 和 Addon B
- 在 A 内创建实体
TestEntityInA
- 在 A 内增加一个 changelog 文件,创建
TestEntityInA
实体的数据库表 - 将 A 安装到 maven local
- 在 B 内引入 A,写测试用例如下:
@Test
void dataLoadForAddonATest(){
List<TestEntityInA> entityList = dataManager.load(TestEntityInA.class)
.query("select e from adda_TestEntityInA e")
.list();
assertEquals(entityList.size(),0);
}
- 执行这个测试用例,运行成功。
附件分别是 A 和 B 的项目:
AddonA.zip (2.8 KB) AddonB.zip (2.8 KB)
您好,我这边说下我的步骤:
1、jmix建一个复合项目
2、添加一个子模块
3、子模块新建一个实体NEWENTITY并生成 changelog
4、运行测试类正常 测试类如下
5、子模块添加定时任务模块 如图
6、运行测试任务 失败
下面是我完整的测试项目
osmain.zip (415.0 KB)
你好,感谢提供示例项目!
错误原因应该是你发现的那个问题,项目启动时只用了 quartz 的 persistence.xml, 没有用 add-on 里面的,导致找不到实体定义。已经在英文论坛提了 issue。
issue 有了解答:
可以在测试的配置类中添加 QuartzConfiguration
的依赖:
@JmixModule(id = "com.company.testa.test", dependsOn = {..., QuartzConfiguration.class})
public class TestaTestConfiguration {
...
一般来讲,在 add-on 中,如果你新增了 add-on 作为依赖,那么必须在测试配置类的 @JmixModule
中添加新增 add-on 的配置类作为依赖。
但是 @SpringBootApplication
不需要,因为它会自动依赖 classpath 中的所有 add-on
除了测试类,子项目的配置类,应该也要指定模块依赖关系的:类似这样
@JmixModule(dependsOn = {EclipselinkConfiguration.class, UiConfiguration.class, OstimeConfiguration.class, QuartzConfiguration.class, CommonConfiguration.class})
public class TestaConfiguration {
…