我有一个包含多个junit类的大型eclipse项目。我正在尝试在向eclipse项目类路径添加运行时资源和配置多个junit启动配置之间取得平衡。
我意识到默认的eclipse构建类路径是由所有单元测试配置继承的,但是我的一些测试需要额外的运行时资源。我可以将这些资源添加到构建类路径中,但这确实会减慢我的整个项目构建时间(因为 它必须保持更多的文件同步)。我不喜欢在运行时类路径中包含*资源和jar的想法。
我拥有的两个选项是这些,正如我所看到的正面和负面情况一样
1:将所有运行时资源添加到eclipse类路径。
2:配置每个单元测试的类路径
理想情况下,我想配置一个基本的junit运行时配置,它采用默认的eclipse构建类路径,添加额外的运行时jar和资源。然后,特定的junit测试用例可以重用此配置,这样的事情可能吗?
查看可导出到共享项目文件的特定junit启动配置
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
<stringAttribute key="bad_container_name" value="/CR-3089_5_1_branch."/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/CR-3089_5_1_branch/src/com/x/y/z/ParserJUnitTest.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
</listAttribute>
<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.x.y.z.ParserJUnitTest"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="CR-3089_5_1_branch"/>
</launchConfiguration>
是否可以扩展/重用此配置,并参数化'org.eclipse.jdt.launching.MAIN_TYPE'值?
我知道commons启动和jar清单文件解决方案来配置类路径,但他们似乎都认为在测试可以执行之前运行了ant构建。我希望避免在调用ant目标时出现任何eclipse依赖 重构代码并执行测试。
基本上 - 分离和维护eclipse构建时类路径和junit运行时类路径的最简单方法是什么?
答案 0 :(得分:1)
第一个解决方案可能是将项目与单元测试完全分开:
一种更清洁的方式(因为它将在Eclipse中使用,但也在Eclipse之外)将用于转换您的项目,例如through m2eclipse。 这样,maven可以管理多个项目的依赖项组合,以便为测试任务提供正确的类路径。