目前,我们正在使用IntelliJ,Scala,SBT在我们当地的环境中启动测试.使用SBT命令行,我们可以按照此处的说明指定特定的测试,套件,通配符:
比如"仅测试*RedSuite"
但是在我们的CI Jenkins服务器上,通过SBT插入,在指定时,它会出错.
在操作字段中,使用了以下值:
操作:编译test-only test.package.name
使用以下内容适用于所有测试:
行动:编译测试
[success] Total time: 240 s, completed Apr 28, 2014 12:29:36 PM
[error] Expected ID character
[error] Not a valid command: org (similar: export)
[error] Expected project ID
[error] Expected configuration
[error] Expected ':' (if selecting a configuration)
[error] Expected key
[error] Not a valid key: org (similar: fork, run, doc)
[error] org.company.scalatest.abc.regressionsuite
[error] ^
Build step 'Build using sbt' changed build result to FAILURE
Build step 'Build using sbt' marked …Run Code Online (Sandbox Code Playgroud) 我目前正在将所有Rest测试移动到CI服务器,并注意到所有测试都因SSL握手而失败,现在我已经使用我们的Java测试套件成功禁用了TrustManager,但我不确定如何使用Scala调度库来完成它,并且还没有找到可以在这种情况下应用的许多示例.
val JSONstr = "{samplekey:samplevalue}"
val response:String = Http(url("https://www.host.com/path/to/post")
<< (checkInJSONstr, "application/json") as_str)
Run Code Online (Sandbox Code Playgroud)
正如预期发生以下异常:
javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated at com.sun.net.ssl.internal.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:352)
...
Run Code Online (Sandbox Code Playgroud)
有没有办法干净地语法上忽略使用调度库的SSL?
我正在尝试向 WebClient 请求添加一个简单的 ExchangeFilterFunction。但是,我看到以下异常:
java.lang.UnsupportedOperationException
at org.springframework.http.ReadOnlyHttpHeaders.add(ReadOnlyHttpHeaders.java:84)
at com.ecs.springframework.reactive.web.filter.AddHeaderExchangeFilter.filter(AddHeaderExchangeFilter.java:24)
at org.springframework.web.reactive.function.client.ExchangeFilterFunction.lambda$apply$2(ExchangeFilterFunction.java:66)
at org.springframework.web.reactive.function.client.DefaultWebClient$DefaultRequestBodyUriSpec.exchange(DefaultWebClient.java:319)
at com.ecs.springframework.reactive.web.filter.AddHeaderExchangeFilterTest.whenExchangeFilterFunctionInjectedIntoWebClient_thenWebClientShouldPropagate(AddHeaderExchangeFilterTest.java:57)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:532)
at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:115)
at
Run Code Online (Sandbox Code Playgroud)
交换过滤功能
public class AddHeaderExchangeFilter implements ExchangeFilterFunction {
@Override
public Mono<ClientResponse> filter(ClientRequest request, ExchangeFunction next) {
ClientRequest newRequest = ClientRequest.create(request.method(), request.url()).build();
newRequest.headers().add("EFF-TEST-HEADER", "EFF-TEST-VALUE");
return next.exchange(newRequest);
}
}
Run Code Online (Sandbox Code Playgroud)
WebClient webTestClient = WebClient.builder().filter(new AddHeaderExchangeFilter()).build();
webTestClient.get().uri("http://httpbin.org/get").exchange();
Run Code Online (Sandbox Code Playgroud)
我对 WebFlux 比较陌生,所以任何指点都将不胜感激。