小编Noe*_*Yap的帖子

在IntelliJ 10.5中运行测试时获取"NoSuchMethodError:org.hamcrest.Matcher.describeMismatch"

我正在使用JUnit-dep 4.10和Hamcrest 1.3.RC2.

我创建了一个自定义匹配器,如下所示:

public static class MyMatcher extends TypeSafeMatcher<String> {
    @Override
    protected boolean matchesSafely(String s) {
        /* implementation */
    }

    @Override
    public void describeTo(Description description) {
        /* implementation */
    }

    @Override
    protected void describeMismatchSafely(String item, Description mismatchDescription) {

        /* implementation */
    }
}
Run Code Online (Sandbox Code Playgroud)

使用Ant从命令行运行时,它完全正常.但是当从IntelliJ运行时,它失败了:

java.lang.NoSuchMethodError: org.hamcrest.Matcher.describeMismatch(Ljava/lang/Object;Lorg/hamcrest/Description;)V
    at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:18)
    at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:8)
    at com.netflix.build.MyTest.testmyStuff(MyTest.java:40)
Run Code Online (Sandbox Code Playgroud)

我的猜测是它使用了错误的hamcrest.MatcherAssert.我如何找到它使用的hamcrest.MatcherAssert(即哪个jar文件用于hamcrest.MatcherAssert)?AFAICT,我班级路径中唯一的火腿罐是1.3.RC2.

IntelliJ IDEA使用它自己的JUnit或Hamcrest副本吗?

如何输出IntelliJ正在使用的运行时CLASSPATH?

java junit intellij-idea hamcrest junit4

222
推荐指数
6
解决办法
10万
查看次数

如何在Jenkins中设置环境变量?

我希望能够做到这样的事情:

AOEU=$(echo aoeu)
Run Code Online (Sandbox Code Playgroud)

詹金斯设定了AOEU=aoeu.

Jenkins中的Environment Variables部分没有这样做.相反,它设置AOEU='$(echo aoeu)'.

如何让Jenkins评估shell命令并将输出分配给环境变量?

最终,我希望能够将作业的执行程序分配给可以传递到其他脚本或由其他脚本使用的环境变量.

continuous-integration environment-variables jenkins

207
推荐指数
11
解决办法
44万
查看次数

如何为curl设置请求标头?

如何在curl请求的标头中传递多个值?

curl

174
推荐指数
3
解决办法
18万
查看次数

如何使用Apache HttpClient发布JSON请求?

我有以下内容:

final String url = "http://example.com";

final HttpClient httpClient = new HttpClient();
final PostMethod postMethod = new PostMethod(url);
postMethod.addRequestHeader("Content-Type", "application/json");
postMethod.addParameters(new NameValuePair[]{
        new NameValuePair("name", "value)
});
httpClient.executeMethod(httpMethod);
postMethod.getResponseBodyAsStream();
postMethod.releaseConnection();
Run Code Online (Sandbox Code Playgroud)

它不断回来500.服务提供商说我需要发送JSON.如何使用Apache HttpClient 3.1+完成这项工作?

java post json http apache-commons-httpclient

85
推荐指数
3
解决办法
14万
查看次数

如何使用Guice的AssistedInject?

我已阅读https://github.com/google/guice/wiki/AssistedInject,但它没有说明如何传递AssistedInject参数的值.injector.getInstance()调用会是什么样的?

java guice guice-3

79
推荐指数
1
解决办法
3万
查看次数

你如何在groovy中获得正在运行的脚本的路径?

我正在编写一个groovy脚本,我希望通过存储在同一文件夹中的属性文件来控制它.但是,我希望能够从任何地方调用此脚本.当我运行脚本时,它总是根据运行的位置查找属性文件,而不是脚本所在的位置.

如何从脚本中访问脚本文件的路径?

groovy

65
推荐指数
3
解决办法
4万
查看次数

如何使用Groovy API检索Jenkins构建参数?

我有一个使用Perforce插件的参数化作业,并希望检索构建参数/属性以及Perforce插件设置的p4.change属性.

如何使用Jenkins Groovy API检索这些属性?

groovy jenkins

30
推荐指数
5
解决办法
9万
查看次数

如何让Guice模块使用另一个Guice模块?

假设我有一个Guice模块ProdModule,我想依赖其他GuiceModule,ProdDbModule和ProdPubSubModule.我如何实现ProdModule的configure()?

java guice

27
推荐指数
3
解决办法
1万
查看次数

如何重构常见的Jenkins JobDSL代码?

我有以下JobDSL规范:

job {
  steps {
    gradle('generateLock saveLock', '-PdependencyLock.includeTransitives=true', true) { node ->
      node / wrapperScript('${NEBULA_HOME}/gradlew')
    }
    gradle('check', '', true) { node ->
      node / wrapperScript('${NEBULA_HOME}/gradlew')
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我想将公共代码重构成一个函数:

def gradlew(String tasks, String options) {
  gradle(tasks, options, true) { node ->
    node / wrapperScript('${NEBULA_HOME}/gradlew')
  }
}
Run Code Online (Sandbox Code Playgroud)

但是该gradle功能在功能中是不可见的gradlew.这样做的正确方法是什么?

groovy jenkins jenkins-job-dsl

23
推荐指数
1
解决办法
4111
查看次数

Scala Regex启用Multiline选项

我正在学习Scala,所以这可能是非常棒的.

我想要一个多行正则表达式.

在Ruby中它将是:

MY_REGEX = /com:Node/m
Run Code Online (Sandbox Code Playgroud)

我的Scala看起来像:

val ScriptNode =  new Regex("""<com:Node>""")
Run Code Online (Sandbox Code Playgroud)

这是我的匹配功能:

def matchNode( value : String ) : Boolean = value match 
{
    case ScriptNode() => System.out.println( "found" + value ); true
    case _ => System.out.println("not found: " + value ) ; false
}
Run Code Online (Sandbox Code Playgroud)

我这样称呼它:

matchNode( "<root>\n<com:Node>\n</root>" ) // doesn't work
matchNode( "<com:Node>" ) // works
Run Code Online (Sandbox Code Playgroud)

我试过了:

val ScriptNode =  new Regex("""<com:Node>?m""")
Run Code Online (Sandbox Code Playgroud)

我真的想避免使用java.util.regex.Pattern.任何提示非常感谢.

regex scala multiline

21
推荐指数
3
解决办法
1万
查看次数