maven-surefire-plugin可以并行运行JUnit测试[1] - 是否可以并行运行Eclipse中的JUnit-Tests?
[1]例如
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
<configuration>
<parallel>methods</parallel>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
"并行运行测试" https://maven.apache.org/plugins/maven-surefire-plugin/examples/junit.html
我正在使用Arquillian [1]在Eclipse [2] -IDE中的嵌入式glassfish环境中测试我的J2EE-App.
package test.java;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.ArchivePaths;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(Arquillian.class)
public class ArquillianTest {
@Deployment
public static WebArchive createDeployment() {
return ShrinkWrap.create(WebArchive.class).addAsWebInfResource(EmptyAsset.INSTANCE,
ArchivePaths.create("beans.xml"));
}
@Test
public void test() {
Assert.assertNull(null);
}
}
Run Code Online (Sandbox Code Playgroud)
测试执行正常,直到我添加显示的指令".addAsWebInfResource(...)".执行此操作时,抛出以下异常:
java.lang.IllegalArgumentException: ArquillianServletRunner not found. Could not determine ContextRoot from ProtocolMetadata, please contact DeployableContainer developer.
at org.jboss.arquillian.protocol.servlet.ServletUtil.determineBaseURI(ServletUtil.java:64)
at org.jboss.arquillian.protocol.servlet.ServletURIHandler.locateTestServlet(ServletURIHandler.java:60)
at org.jboss.arquillian.protocol.servlet.ServletMethodExecutor.invoke(ServletMethodExecutor.java:77)
at org.jboss.arquillian.container.test.impl.execution.RemoteTestExecuter.execute(RemoteTestExecuter.java:120)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at …
Run Code Online (Sandbox Code Playgroud) 描述
\n\n我正在开发AWS Java Lambdas,使用Gradle作为我的构建工具。
\n\nAWS 需要上传“独立”Java 存档(.jar、.zip...),其中必须包含所有内容、我的源代码、依赖项等。
\n\n有用于此目的的 Gradle 插件影子,可以像这样包含它:
\n\nimport com.github.jengelman.gradle.plugins.shadow.transformers.Log4j2PluginsCacheFileTransformer\n\n...\n\nshadowJar { \n archiveName = "${project.name}.jar"\n mergeServiceFiles()\n transform(Log4j2PluginsCacheFileTransformer) \n}\nbuild.dependsOn shadowJar\n
Run Code Online (Sandbox Code Playgroud)\n\ngradle build生成一个文件somefunction.jar,在我的例子中,它的大小为 9.5MB。
\n\nAWS文档建议
\n\n\n\n\n将依赖项 .jar 文件放在单独的 /lib 目录中
\n
有关如何执行此操作的具体说明,请参阅为 Java 函数创建 ZIP 部署包。
\n\ntask buildZip(type: Zip) {\n archiveName = "${project.name}.zip"\n from compileJava\n from processResources\n into(\'lib\') {\n from configurations.runtimeClasspath\n }\n}\nbuild.dependsOn buildZip\n
Run Code Online (Sandbox Code Playgroud)\n\ngradle build生成一个文件build/distributions/somefunction.zip …
我正在使用checkstyle来获取有关我的源代码的报告.这个问题是关于MagicNumberCheck的.
我Date/(org.joda.)DateTime
在我的源代码中使用如下:
DateTime dateTime = new DateTime(2013, 2, 27, 23, 0):
dateTime.plusHours(57);
Run Code Online (Sandbox Code Playgroud)
如果幻数在Date或DateTime内,有没有办法抑制MagicNumberCheck通知?
在Java8中,引入了lambda表达式.这个问题是关于何时执行并行lambda.
在Java8之前,Callable -classes是一次执行多个线程的一种方法.可以将Callables与Executor -classes一起使用来执行.假设我使用固定线程池,使用3作为活动处理任务的数量.我们假设我有8个任务.固定线程池将启动前三个任务,并在完成后,启动下一个任务,直到完成所有8个任务.
如果我将我的任务实现为Java8-lambdas,会发生什么?全部8个会立刻开始吗?还是顺序?还是以任何聪明的方式?
特别是,它们是否与调用者在同一个线程中运行(不使用Exeuctor)?就其本质而言,我猜lambdas可以很容易地在另一个线程中执行.
作为我的 Google Cloud 负载平衡的一部分,我正在使用URL maps。
在工作设置中,我注意到对 URL 映射的更改需要很长时间才能生效。
例如,如果我将工作 URL 映射的主机值从“abc.example.com”更改为“def.example.com”,则 abc.example.com 将保持可用至少几分钟,而这需要至少几分钟,直到 def.example.com 可用(我没有使用任何缓存)。
有没有办法减少这个时间,直到传播变化?
我想使用 Terraforms api_gateway_integration和sfn_state_machine使用 API 网关创建一个步进函数 API。
我现在必须在 api_gateway_integration 处填写uri 参数。
我的 step 函数已创建,我可以引用 step 函数的 id(类似于arn:aws:states:*region*:*account*:stateMachine:*step-function-name*:stateMachine:*step-function-entry-point*
)。
如果 AWS 阶跃函数是目标,谁能告诉我该方案或 uri 参数外观的示例?
resource "aws_api_gateway_integration" "endpoint_integration" {
...
integration_http_method = "POST"
type = "AWS"
uri = <<<<< What to place here???
}
Run Code Online (Sandbox Code Playgroud) amazon-web-services terraform aws-api-gateway aws-step-functions
我正在开发一个用JSF和PrimeFaces添加/编辑产品价格的表单.单个产品可以有多种价格,具体取决于体积,如图所示<p:dataTable>
.
支持bean:
@ManagedBean
@ViewScoped
public class ProductBean {
protected Product product;
protected List<ProductPrice> productPrices;
public void addNewPrice() {
ProductPrice productPrice = new ProductPrice();
productPrice.setPrice(new BigDecimal(0));
this.productPrices.add(productPrice);
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
Facelet页面:
<h:form id="productForm">
<p:inputText value="#{productBean.product.name}" required="true">
<f:ajax event="blur" render="nameMessage" />
</p:inputText>
<p:message id="nameMessage" for="name" />
<p:dataTable id="pricesList" ...>
</p:dataTable>
<p:commandButton value="Add another price" update="pricesList" action="#{productBean.addNewPrice()}" />
<p:commandButton value="Submit" action="#{productBean.submit}" />
</h:form>
Run Code Online (Sandbox Code Playgroud)
第一个按钮"添加另一个价格",它应该做什么:向"pricesList"添加一个新行.但仅当表单有效时(表单无效,如果未设置product-name).
我的问题是,我有两个commandButtons用于表单,但我不知道如何在没有commandButton的情况下获得我希望的函数.我尝试了很多方法:将"添加另一个价格"更改为<p:button>
具有ajax功能的标准; 由于按钮的结果不起作用.我为这个按钮尝试了"type = button",但在这种情况下,没有任何反应.
有什么建议要实现我希望的功能吗?没有必要按钮解决我的问题.
我有一个maven项目,使用"test"-phase以及"integration-test"-phase.在测试阶段,执行JUnit-Tests,在集成测试中有HTMLUnit-tests.我正在使用Jacoco [1] -maven-plugin来测量我的项目的JUnit测试所完成的代码覆盖.在进行集成测试时,我使用maven-embedded-glassfish-plugin启动glassfish服务器并在执行测试之前部署我的应用程序.
可悲但真实,我必须暂时禁用jacoco,因为它与"集成测试"相位不一致.
Jacoco的报告目标是/应该在准备包阶段进行,所以我认为它不应该影响集成测试阶段.但是当我启用jacoco:report时,由于内存大小问题,我的集成测试不再运行[2].
如何停止jacoco:报告影响集成测试阶段?
[1] http://www.eclemma.org/jacoco/
[2]
java.lang.instrument.IllegalClassFormatException: Error while instrumenting class com/steadystate/css/parser/SACParserCSS21TokenManager.
at org.jacoco.agent.rt_6l8m50.CoverageTransformer.transform(CoverageTransformer.java:91)
at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:424)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at com.steadystate.css.parser.SACParserCSS21.<init>(SACParserCSS21.java:2196)
at com.steadystate.css.parser.SACParserCSS21.<init>(SACParserCSS21.java:23)
at com.gargoylesoftware.htmlunit.javascript.host.css.CSSStyleSheet.parseCSS(CSSStyleSheet.java:530)
at com.gargoylesoftware.htmlunit.javascript.host.css.CSSStyleSheet.<init>(CSSStyleSheet.java:152)
at com.gargoylesoftware.htmlunit.javascript.host.html.HTMLStyleElement.getSheet(HTMLStyleElement.java:73)
at com.gargoylesoftware.htmlunit.javascript.host.css.StyleSheetList.item(StyleSheetList.java:129)
at com.gargoylesoftware.htmlunit.javascript.host.Window.getComputedStyle(Window.java:1591)
at com.gargoylesoftware.htmlunit.javascript.host.html.HTMLElement.getCurrentStyle(HTMLElement.java:2465)
at com.gargoylesoftware.htmlunit.html.DomNode.isDisplayed(DomNode.java:688)
at com.gargoylesoftware.htmlunit.html.HtmlSerializer.isVisible(HtmlSerializer.java:377)
at com.gargoylesoftware.htmlunit.html.HtmlSerializer.appendText(HtmlSerializer.java:371)
at com.gargoylesoftware.htmlunit.html.HtmlSerializer.appendNode(HtmlSerializer.java:126)
at com.gargoylesoftware.htmlunit.html.HtmlSerializer.appendChildren(HtmlSerializer.java:249)
at com.gargoylesoftware.htmlunit.html.HtmlSerializer.appendNode(HtmlSerializer.java:198)
at com.gargoylesoftware.htmlunit.html.HtmlSerializer.appendChildren(HtmlSerializer.java:249)
at com.gargoylesoftware.htmlunit.html.HtmlSerializer.appendNode(HtmlSerializer.java:198)
at …
Run Code Online (Sandbox Code Playgroud) 我有一个简单的 docker 命令
$ docker rm 1234
> Error response from daemon: No such container: 1234
Run Code Online (Sandbox Code Playgroud)
将其集成到 ant 中可以得到:
<target name="demo">
<exec executable="docker">
<arg value="rm 1234" />
</exec>
</target>
> ant -v demo
> demo:
[exec] Current OS is Linux
[exec] Executing 'docker' with arguments:
[exec] 'rm 1234'
[exec]
[exec] The ' characters around the executable and arguments are
[exec] not part of the command.
[exec] docker: 'rm 1234' is not a docker command. See 'docker --help'.
[exec] Result: 1 …
Run Code Online (Sandbox Code Playgroud) 在我的spring-boot项目中,我使用 Logback-"Mapped Diagnostic Context" MDC来记录诊断上下文。
默认情况下不记录 MDC 数据(到控制台或文件)。
有没有办法仅使用应用程序属性将此 MDC 日志记录到输出日志中?
在Google计算引擎中,我可以使用实例模板从该模板创建新的VM。使用GCE控制台可以正常工作,也可以使用API(URL参数“ sourceInstanceTemplate”)正常工作。
如何使用googleapis / nodejs-compute(Node.js GCE SDK)从实例模板创建新的GCE-VM ?
我使用Micronaut作为开发 AWS Java Lambda 的框架。
Micronaut 支持@Value来读取“值”。
@io.micronaut.context.annotation.Factory
public class SomeFactory {
public SomeFactory(
@io.micronaut.context.annotation.Value("${NameOfValue}")
final String value) {
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
当测试,我想“NameOfValue”设置为特定值,我该怎么办呢?
@io.micronaut.test.annotation.MicronautTest
class SomeLambdaIT {
@org.junit.jupiter.api.Test
void aTest() {
// When this test runs, "NameOfValue" shall be set to a specific value
}
}
Run Code Online (Sandbox Code Playgroud)