我正在尝试使用gradle的-Dtest.single标志运行单个集成测试.我添加了另一个源集,src/integrationTest并将测试放在那里.我有一个集成测试任务
task integrationTests(type: Test) {
dependsOn 'assemble', 'integrationTestClasses'
testClassesDir = sourceSets.integrationTest.output.classesDir
classpath = sourceSets.integrationTest.runtimeClasspath
}
Run Code Online (Sandbox Code Playgroud)
运行正常,但如果我尝试运行单个测试,它告诉我它找不到匹配的测试.我不希望每次编写新的测试时都要运行每个集成测试.有没有办法做到这一点?
我们安装了Cassandra 2.0并将其配置为SSL,我们在启动时运行此问题.我们正在使用Open JDK
java-1.7.0-openjdk-1.7.0.55-2.4.7.1.el6_5.x86_64
Run Code Online (Sandbox Code Playgroud)
异常消息:
Caused by: java.lang.IllegalArgumentException: Cannot support
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA with currently installed providers
Run Code Online (Sandbox Code Playgroud)
我查看了以下链接 - 但这与Java 6/7相关.
有任何想法吗 ?谢谢一堆
我使用以下注释来标记我的集成测试:
@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Tag("integration-test")
public @interface IntegrationTest {
}
Run Code Online (Sandbox Code Playgroud)
这是我用来build.gradle从gradle build以下方面排除这些测试的过滤器:
junitPlatform {
filters {
tags {
exclude 'integration-test'
}
}
}
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.
现在我想提供一个专门运行我的集成测试的Gradle任务 - 推荐的方法是什么?
在我的一个阶段中,我需要在构建完成后复制两个文件夹的内容并复制到另一个目录.
我实际上是将自由式作业转换为管道,并且一直在使用工件部署器插件.阅读,看起来像stash和unstash命令应该有助于我想要实现的目标.
有人可以验证这是否是下面的正确方法?
stage('Build') {
steps {
sh '''
gulp set-staging-node-env
gulp prepare-staging-files
gulp webpack
'''
stash includes: '/dist/**/*', name: 'builtSources'
stash includes: '/config/**/*', name: 'appConfig'
dir('/some-dir') {
unstash 'builtSources'
unstash 'appConfig'
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我在一个阶段更改dir,这是否意味着此后所有其他阶段将尝试从该目录执行命令,或者他们是否回到使用工作区默认位置?
谢谢
编辑
我已经意识到我真正想要做的是将构建的源复制到不同的节点(运行不同的操作系统).所以在我的代码片段中,我已经共享,在我切换目录的地方,该目录实际上是在我设置的不同机器(节点)上.
我需要dir()用node('my-node-name')块包裹块吗?我很难找到例子.
谢谢
我正在研究一个非常简单的Java博客引擎,以便学习多种技术.
Tech:Spring IoC,Hibernate,jUnit,GWT和Maven.
我创建了两个Maven项目:一个核心项目和一个GWT项目(其核心项目有一个参考)
可以通过https://github.com/LaurentT/BlogEngineCore访问代码
我的目标如下:我想要包含Java源代码和XML,因为我的GWT项目需要Java源代码才能将其编译成JavaScript.
我试图在<build>元素中使用以下代码:
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.java</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*xml</include>
<include>**/*.*properties</include>
</includes>
</resource>
</resources>
Run Code Online (Sandbox Code Playgroud)
我的jUnit测试用于在添加之前传递和完成,但现在他们甚至没有完成他们正在挂...
我不知道发生了什么,所以我想知道是否还有其他方法可以包含Java源代码,或者我是否只是做错了.
任何线索?
为什么@Library()调用_至少在某些情况下需要尾随(下划线)字符?例如@Library('foobar-library@foobranch') _
这对我来说似乎完全是多余的,但也许有一个很好的解释?
我正在使用与Asgard(来自netflix)集成的gradle插件(我不知道groovy,刚开始使用gradle).我希望我的扩展对象看起来像这样:
asgard {
url = "http://asgard"
regions {
"us-east-1" {
autoScaling {
{
devPhase = "test"
min = 3
max = 6
availabilityZones = ["us-east-1a", "us-east-1b", "us-east-1c"]
ami = "Base AMI 2013-07-11"
instanceType = "m3.xlarge"
securityGroups = ["base", "test-application"]
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
或者接近那个.我已经能够通过使autoScaling成为一个List来接近这个,但是当我尝试从该类获取属性时,它似乎返回一个动态属性,而不是值.以下是入门插件:
import org.gradle.internal.reflect.Instantiator
class AsgardPlugin implements Plugin<Project> {
void apply(Project project) {
project.extensions.create("asgard", AsgardPluginExtension, project)
project.asgard.extensions.regions = project.container(AsgardRegion) {String name ->
AsgardRegion region = project.gradle.services.get(Instantiator).newInstance(AsgardRegion, name)
assert region instanceof ExtensionAware
region.extensions.add("autoScaling", project.container(AsgardAutoScaling))
return region
}
project.task('displayConfigs') …Run Code Online (Sandbox Code Playgroud) 所以我试图将jetty嵌入到我的Web应用程序中,这样如果我将它打包成jar,就可以运行jar文件而不必担心配置服务器.但是,我在设置主类时遇到了一些问题,因此jetty可以访问我的资源类.我看过教程,但他们没有给我我正在寻找的东西.这就是我到目前为止所拥有的.
package pojo;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
public class Main {
public static void main(String[] args) throws Exception {
Server server = new Server(8080);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.NO_SESSIONS);
context.setContextPath("/");
ServletHolder h = new ServletHolder(new DefaultServlet());
h.setInitParameter("javax.ws.rs.Application","resources.DBCollection");
context.addServlet(h, "/*");
server.setHandler(context);
server.start();
server.join();
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试将它映射到这个类:
package resources;
import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Request;
import javax.ws.rs.core.UriInfo;
import pojo.Party;
@Path("/parties")
public class DBCollection {
@Context
UriInfo …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个使用groovy.sql.SQL的全局函数脚本.
添加注释@GrabConfig(systemClassLoader=true)时,在Jenkinsfile中使用全局函数时会出现异常.
这是一个例外:
hudson.remoting.ProxyException: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
General error during conversion: No suitable ClassLoader found for grab
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
@GrabResolver(name='nexus', root='http://internal.repo.com')
@GrabConfig(systemClassLoader=true)
@Grab('com.microsoft.sqlserver:sqljdbc4:4.0')
import groovy.sql.Sql
import com.microsoft.sqlserver.jdbc.SQLServerDriver
def call(name) {
echo "Hello world, ${name}"
Sql.newInstance("jdbc:sqlserver://ipaddress/dbname", "username","password", "com.microsoft.sqlserver.jdbc.SQLServerDriver")
// sql.execute "select count(*) from TableName"
}
Run Code Online (Sandbox Code Playgroud) 我正在使用Nashorn javascript引擎来评估在java应用程序中编写的所有服务器端javascript代码.为了提高性能,我在启动时使用spring初始化JsEngine并评估和缓存所有核心工具,如Mustache和一些常见的JS工具.然后每次屏幕渲染时,这个预先评估的JsEngine将用于评估特定于页面的JavaScript代码.它在某些时候工作正常,意味着它按预期呈现页面,但在我持续点击相同的URL时开始抛出异常
我无法找到问题的根本原因.
@Component
public class JsEngine {
private ScriptEngine scriptEngine;
@PostConstruct
public void init() throws ScriptException, IOException{
scriptEngine = new ScriptEngineManager().getEngineByName("nashorn");
this.cacheAllCoreEngines();
for(String key: defaultEngineSource.keySet()){
scriptEngine.eval(defaultEngineSource.get(key));
}
}
private void cacheAllCoreEngines()throws IOException{
//read all core files such as mustache, etc.
defaultEngineSource.put("mustache", FileUtil.readFileFromDisk("<actual path..>/mustache.js"));
}
public Object eval(String source) throws ScriptException{
.... code to handle exceptions
return scriptEngine.eval (source);
}
}
Run Code Online (Sandbox Code Playgroud)
JsEngine如下所示,
public class AppRendererImpl implements AppRenderer {
@Autowired
JsEngine jsEngine;
public String render(){
....
.... //Read source from disk …Run Code Online (Sandbox Code Playgroud)