Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
LinuxSuRen
jenkins
提交
26c4ab77
J
jenkins
项目概览
LinuxSuRen
/
jenkins
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jenkins
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
26c4ab77
编写于
12月 08, 2017
作者:
J
Jesse Glick
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
SetBuildParameterCommandTest
上级
5ed56faa
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
88 addition
and
82 deletion
+88
-82
test/src/test/groovy/hudson/cli/SetBuildParameterCommandTest.groovy
...est/groovy/hudson/cli/SetBuildParameterCommandTest.groovy
+0
-82
test/src/test/java/hudson/cli/SetBuildParameterCommandTest.java
...rc/test/java/hudson/cli/SetBuildParameterCommandTest.java
+88
-0
未找到文件。
test/src/test/groovy/hudson/cli/SetBuildParameterCommandTest.groovy
已删除
100644 → 0
浏览文件 @
5ed56faa
package
hudson.cli
import
hudson.Functions
import
hudson.Launcher
import
hudson.model.AbstractBuild
import
hudson.model.BuildListener
import
hudson.model.ParametersAction
import
hudson.model.ParametersDefinitionProperty
import
hudson.model.ParameterDefinition
import
hudson.model.Result
import
hudson.model.StringParameterDefinition
import
hudson.tasks.BatchFile
import
hudson.tasks.Builder
import
hudson.tasks.Shell
import
jenkins.model.JenkinsLocationConfiguration
import
org.junit.Assert
import
org.junit.ClassRule
import
org.junit.Rule
import
org.junit.Test
import
org.jvnet.hudson.test.BuildWatcher
import
org.jvnet.hudson.test.JenkinsRule
import
org.jvnet.hudson.test.TestBuilder
/**
* @author Kohsuke Kawaguchi
*/
public
class
SetBuildParameterCommandTest
{
@Rule
public
JenkinsRule
j
=
new
JenkinsRule
();
@ClassRule
public
static
BuildWatcher
buildWatcher
=
new
BuildWatcher
();
@Test
public
void
cli
()
{
JenkinsLocationConfiguration
.
get
().
url
=
j
.
URL
;
def
p
=
j
.
createFreeStyleProject
();
p
.
buildersList
.
add
(
new
TestBuilder
()
{
@Override
boolean
perform
(
AbstractBuild
<?,
?>
build
,
Launcher
launcher
,
BuildListener
listener
)
throws
InterruptedException
,
IOException
{
def
jar
=
j
.
jenkins
.
servletContext
.
getResource
(
"/WEB-INF/jenkins-cli.jar"
)
build
.
workspace
.
child
(
"cli.jar"
).
copyFrom
(
jar
);
return
true
;
}
});
List
<
ParameterDefinition
>
pd
=
[
new
StringParameterDefinition
(
"a"
,
""
),
new
StringParameterDefinition
(
"b"
,
""
)];
p
.
addProperty
(
new
ParametersDefinitionProperty
(
pd
))
p
.
buildersList
.
add
(
createScriptBuilder
(
"java -jar cli.jar -remoting -noKeyAuth set-build-parameter a b"
))
p
.
buildersList
.
add
(
createScriptBuilder
(
"java -jar cli.jar -remoting -noKeyAuth set-build-parameter a x"
))
p
.
buildersList
.
add
(
createScriptBuilder
(
"java -jar cli.jar -remoting -noKeyAuth set-build-parameter b y"
))
def
r
=
[:];
def
b
=
j
.
assertBuildStatusSuccess
(
p
.
scheduleBuild2
(
0
))
b
.
getAction
(
ParametersAction
.
class
).
parameters
.
each
{
v
->
r
[
v
.
name
]=
v
.
value
}
assert
r
.
equals
([
"a"
:
"x"
,
"b"
:
"y"
]);
if
(
Functions
.
isWindows
())
{
p
.
buildersList
.
add
(
new
BatchFile
(
"set BUILD_NUMBER=1\r\njava -jar cli.jar -remoting -noKeyAuth set-build-parameter a b"
))
}
else
{
p
.
buildersList
.
add
(
new
Shell
(
"BUILD_NUMBER=1 java -jar cli.jar -remoting -noKeyAuth set-build-parameter a b"
))
}
def
b2
=
j
.
assertBuildStatus
(
Result
.
FAILURE
,
p
.
scheduleBuild2
(
0
).
get
());
j
.
assertLogContains
(
"#1 is not currently being built"
,
b2
)
r
=
[:];
b
.
getAction
(
ParametersAction
.
class
).
parameters
.
each
{
v
->
r
[
v
.
name
]=
v
.
value
}
assert
r
.
equals
([
"a"
:
"x"
,
"b"
:
"y"
]);
}
//TODO: determine if this should be pulled out into JenkinsRule or something
/**
* Create a script based builder (either Shell or BatchFile) depending on platform
* @param script the contents of the script to run
* @return A Builder instance of either Shell or BatchFile
*/
private
Builder
createScriptBuilder
(
String
script
)
{
return
Functions
.
isWindows
()
?
new
BatchFile
(
script
)
:
new
Shell
(
script
);
}
}
test/src/test/java/hudson/cli/SetBuildParameterCommandTest.java
0 → 100644
浏览文件 @
26c4ab77
package
hudson.cli
;
import
com.google.common.collect.ImmutableMap
;
import
hudson.Functions
;
import
hudson.Launcher
;
import
hudson.model.AbstractBuild
;
import
hudson.model.BuildListener
;
import
hudson.model.FreeStyleBuild
;
import
hudson.model.FreeStyleProject
;
import
hudson.model.ParametersAction
;
import
hudson.model.ParametersDefinitionProperty
;
import
hudson.model.ParameterDefinition
;
import
hudson.model.Result
;
import
hudson.model.StringParameterDefinition
;
import
hudson.tasks.BatchFile
;
import
hudson.tasks.Builder
;
import
hudson.tasks.Shell
;
import
java.io.IOException
;
import
java.net.URL
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.TreeMap
;
import
static
org
.
junit
.
Assert
.*;
import
org.junit.ClassRule
;
import
org.junit.Rule
;
import
org.junit.Test
;
import
org.jvnet.hudson.test.BuildWatcher
;
import
org.jvnet.hudson.test.JenkinsRule
;
import
org.jvnet.hudson.test.TestBuilder
;
public
class
SetBuildParameterCommandTest
{
@Rule
public
JenkinsRule
j
=
new
JenkinsRule
();
@ClassRule
public
static
BuildWatcher
buildWatcher
=
new
BuildWatcher
();
@Test
public
void
cli
()
throws
Exception
{
FreeStyleProject
p
=
j
.
createFreeStyleProject
();
p
.
getBuildersList
().
add
(
new
TestBuilder
()
{
@Override
public
boolean
perform
(
AbstractBuild
<?,
?>
build
,
Launcher
launcher
,
BuildListener
listener
)
throws
InterruptedException
,
IOException
{
URL
jar
=
j
.
jenkins
.
servletContext
.
getResource
(
"/WEB-INF/jenkins-cli.jar"
);
build
.
getWorkspace
().
child
(
"cli.jar"
).
copyFrom
(
jar
);
return
true
;
}
});
List
<
ParameterDefinition
>
pd
=
Arrays
.
asList
(
new
StringParameterDefinition
(
"a"
,
""
),
new
StringParameterDefinition
(
"b"
,
""
));
p
.
addProperty
(
new
ParametersDefinitionProperty
(
pd
));
p
.
getBuildersList
().
add
(
createScriptBuilder
(
"java -jar cli.jar -remoting -noKeyAuth set-build-parameter a b"
));
p
.
getBuildersList
().
add
(
createScriptBuilder
(
"java -jar cli.jar -remoting -noKeyAuth set-build-parameter a x"
));
p
.
getBuildersList
().
add
(
createScriptBuilder
(
"java -jar cli.jar -remoting -noKeyAuth set-build-parameter b y"
));
Map
<
String
,
Object
>
r
=
new
TreeMap
<>();
FreeStyleBuild
b
=
j
.
assertBuildStatusSuccess
(
p
.
scheduleBuild2
(
0
));
b
.
getAction
(
ParametersAction
.
class
).
getParameters
().
forEach
(
v
->
r
.
put
(
v
.
getName
(),
v
.
getValue
()));
assertEquals
(
ImmutableMap
.
of
(
"a"
,
"x"
,
"b"
,
"y"
),
r
);
if
(
Functions
.
isWindows
())
{
p
.
getBuildersList
().
add
(
new
BatchFile
(
"set BUILD_NUMBER=1\r\njava -jar cli.jar -remoting -noKeyAuth set-build-parameter a b"
));
}
else
{
p
.
getBuildersList
().
add
(
new
Shell
(
"BUILD_NUMBER=1 java -jar cli.jar -remoting -noKeyAuth set-build-parameter a b"
));
}
FreeStyleBuild
b2
=
j
.
assertBuildStatus
(
Result
.
FAILURE
,
p
.
scheduleBuild2
(
0
).
get
());
j
.
assertLogContains
(
"#1 is not currently being built"
,
b2
);
r
.
clear
();
b
.
getAction
(
ParametersAction
.
class
).
getParameters
().
forEach
(
v
->
r
.
put
(
v
.
getName
(),
v
.
getValue
()));
assertEquals
(
ImmutableMap
.
of
(
"a"
,
"x"
,
"b"
,
"y"
),
r
);
}
//TODO: determine if this should be pulled out into JenkinsRule or something
/**
* Create a script based builder (either Shell or BatchFile) depending on
* platform
* @param script the contents of the script to run
* @return A Builder instance of either Shell or BatchFile
*/
private
Builder
createScriptBuilder
(
String
script
)
{
return
Functions
.
isWindows
()
?
new
BatchFile
(
script
)
:
new
Shell
(
script
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录