我想通过fitnesse远程使用我的瘦服务器,但它不起作用,因为fitnesse总是希望在本地启动slim服务器。 问题: 在 hostA 上有一个独立的fitnesse服务器(从命令提示符开始,带有“ java -jar fitnesse-standalone.jar -p 8080 ”命令),带有一个非常简单的textfixture:< / p>
!define TEST_SYSTEM {slim}
!define slim.host {hostB}
!define slim.port {8090}
!define slim.pool.size {2}
!|script|Count|
|count|
|count|
|check|counter|12|
|count|
|count|
|check|counter|4|
|count|
|count|
|check|counter|6|
在 hostB 上,我有一个瘦服务器,可以侦听端口 8090 。 如果我启动夹具,我会收到以下错误消息:
“无法启动测试系统&#39; slim&#39;:java.io.IOException:无法运行程序&#34;&#34; c:\ Program Files(x86)\ Java \ jre7 \ bin \ java&#34;&#34;:CreateProcess error = 2,系统找不到指定的文件“
似乎fitnesse想要在本地启动瘦服务器,因为如果我定义测试运行器:
!define TEST_RUNNER {<path>/to/my/slimserver/mycslim.exe}
!define COMMAND_PATTERN {%m}
它有效,但这不是我需要的行为。我想如果我定义 slim.host 和 slim.port fitnesse将自动连接到 hostB 而无需在本地启动slim服务器。
可以将fitnesse服务器配置为连接到远程slim服务器而无需在本地启动它吗? 谢谢你的帮助!
答案 0 :(得分:0)
我已经编写了一个自定义TestSystem来实现这一目标。关键是客户端构建器。
function makepdf() {
var pdfContent, a = [], b = [], kontent = [],
list = $("#tabs ul>li a"),
imgSources = ['images/weledu.jpg'],
imgData = [];
$.getJSON(get_url+'types.php?id='+$('#type').val(), function (newsrc) {
imgSources.push('images/lamps/'+newsrc.data['0'].image);
$.each(imgSources, function(index, src) {
imgData.push(toDataUrl(src));
});
// I've always passed `$` as the 1st parameter here,
// not sure if it matters
$.when.apply($, imgData).done(function(img1, img2) {
// pdf creation
// Use `img1`, `img2`, etc. here
// Or loop over `arguments` to get the `dataURL`s
});
});
}
在测试系统工厂中使用此客户端构建器:
public class CustomClientBuilder extends SlimClientBuilder {
public CustomClientBuilder(Descriptor descriptor) {
super(descriptor);
}
@Override
public SlimCommandRunningClient build() throws IOException {
Object commandRunner = new MockCommandRunner(this.getExecutionLogListener());
return new SlimCommandRunningClient((CommandRunner)commandRunner, this.determineSlimHost(), this.getSlimPort(),
this.determineTimeout(), this.getSlimVersion(), this.determineSSL(),
this.determineHostSSLParameterClass());
}
}