【问题标题】:Maven Release Build Skip test case is fails - JenkinsMaven Release Build Skip 测试用例失败 - Jenkins
【发布时间】:2015-02-17 02:53:23
【问题描述】:

我在使用 Maven 发布版本构建 Jenkins 时遇到问题。原因是测试用例失败。我试图跳过测试用例,但它失败了。

我的 Jenkins 设置的屏幕截图:-

日志:-

    ationTest): org.springframework.mock.jndi.SimpleNamingContext cannot be cast to org.apache.commons.dbcp.BasicDataSource
  testReadNotCancelled(uk.com.xxx.yyy.sdp.bizservice.user.domain.dao.UserDaoIntegrationTest): org.springframework.mock.jndi.SimpleNamingContext cannot be cast to org.apache.commons.dbcp.BasicDataSource
  testReadNotCancelledNullReturn(uk.com.xxx.yyy.sdp.bizservice.user.domain.dao.UserDaoIntegrationTest): org.springframework.mock.jndi.SimpleNamingContext cannot be cast to org.apache.commons.dbcp.BasicDataSource
  testSaveUserPasswordReset(uk.com.xxx.yyy.sdp.bizservice.user.domain.dao.UserDaoIntegrationTest): org.springframework.mock.jndi.SimpleNamingContext cannot be cast to org.apache.commons.dbcp.BasicDataSource
  testSaveUserPasswordChange(uk.com.xxx.yyy.sdp.bizservice.user.domain.dao.UserDaoIntegrationTest): org.springframework.mock.jndi.SimpleNamingContext cannot be cast to org.apache.commons.dbcp.BasicDataSource

    Tests run: 232, Failures: 1, Errors: 135, Skipped: 3

    [ERROR] There are test failures.

有什么我遗漏的,请提出建议。 任何意见将是有益的。请帮我解决这个问题。

【问题讨论】:

    标签: maven jenkins maven-release-plugin


    【解决方案1】:

    参数为-DskipTests=true。您没有提供值...

    【讨论】:

    • 谢谢斯拉夫,我已经用 -Darguments='-DskipTests=true' 尝试了这个选项。但它不起作用。
    • ...你从哪里想到-Darguments??将我的回答中的那一行完整地和原样放入您的两个“目标和选项”字段中。
    • 仍然无法正常工作@Slav。我已经使用了这个 commond -Dresume=false release:prepare release:perform -DskipTests=true
    • 您不需要提供值,“-DskipTests”相当于“-DskipTests=true”。 “-Darguments”是必要的,因为它是一个分叉的过程。看到这个答案:stackoverflow.com/a/8685252/99231
    【解决方案2】:

    您正在(曾经?)寻找的命令行是:

    release:prepare release:perform "-Darguments=-DskipTests=true" (compile tests, non execution)
    

    release:prepare release:perform "-Darguments=-Dmaven.test.skip=true" (do not even compile tests)
    

    这个插件 forks Maven(至少运行测试),所以你必须使用

    "-Darguments=-DskipTests=true -Dproperty1=value -Dproperty2=anothervalue" 
    

    将参数传递给分叉的进程。

    【讨论】:

    • 非常重要,但微妙的细节,"-Darguments= 是必要的,谢谢 Olivier!
    【解决方案3】:

    这对我有用。

    --batch-mode  -DskipTests -Darguments=-DskipTests  release:prepare
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-21
      • 2021-04-18
      • 2011-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-04
      • 1970-01-01
      相关资源
      最近更新 更多