如何增强openjpa实体以在TeamCity构建中的单元测试中使用

时间:2011-10-26 23:43:08

标签: teamcity openjpa javaagents

我正在尝试在我的TeamCity构建中运行需要openJPA增强的单元测试(我使用的是openjpa 2.0.1)。我的构建配置基于我的Intellij项目。 (即我没有使用Maven / Ant来构建,而是TeamCity提供只需提取存储在.idea文件夹中的Intellij项目配置来确定如何编译/构建项目。)我正在运行测试,包括intellij运行配置在Intellij项目构建步骤中。

在我的本地IDE(Intellij)中,我可以通过包含-javaagent:<path to openjpa jar> vm参数来运行我的集成测试。

当我在团队城市构建中运行相同的“运行配置”时,实体没有得到增强,因此我的测试失败了。

这样做的任何提示或想法?我已经尝试使用ant来进行构建时增强但是a)我没有成功地让它在本地工作并且b)teamcity中的intellij项目步骤清除了任何现有的输出文件夹(因此增强的类被丢弃。)

1 个答案:

答案 0 :(得分:2)

有时候归结为RTFM ...

我尝试做的是通过在我的Intellij运行配置中配置运行时(通过JVM args和javaagent)或构建时(通过Ant任务)增强来运行我的测试。不幸的是,这不受支持。

http://confluence.jetbrains.net/display/TCD65/IntelliJ+IDEA+Project

  

TeamCity IntelliJ IDEA运行器支持IntelliJ IDEA的子集   特性:

     

JUnit 3.x / 4.x -

     
      
  • 不支持测试运行器参数
  •   
  • 不支持在测试开始之前运行Ant或Maven
  •   
  • 不支持替代JRE
  •   

所以我的解决方案(按预期工作)是在我的TeamCity项目配置中配置以下步骤:

  1. Intellij Runner步骤 - 编译项目
  2. Ant步骤 - 构建时间增强
  3. Ant步骤 - 运行测试
  4. 正如我所看到的,使用intellij项目和intellij运行配置,使用TeamCity中的单个Intellij Runner步骤无法实现此目的。

    我已向TeamCity人员提交了一项功能请求: http://youtrack.jetbrains.net/issue/TW-18739