我使用java运行Envjs,以便在Jasmine中运行javascript单元测试。这将允许我在没有浏览器的情况下运行测试,并使集成到Jenkins (一个持续集成构建服务器)变得更加容易。
我有一个LoadSpecRunner.js文件( Envjs运行),它使用如下代码加载实际的茉莉测试运行程序。
window.location.href = 'file:///c:/source/JasmineTest/SpecRunner.html');问题是,将完整的url设置为文件很好,而我所有设置相对路径的尝试都失败了。下面是我为返回的输出设置一个相对url的一些尝试
window.location.href = Envjs.uri('../JasmineTest/SpecRunner.html');或
window.location.href = '../JasmineTest/SpecRunner.html';file://c/source/JasmineTest/SpecRunner.html文件
打开失败
Java异常: java.net.UnknownHostException: C
window.location.href = window.location.href;file://c/:/Source/jasmine-reporters/about:blank文件
打开失败
JavaException: java.net.UnknownHostException: C
有人有什么想法吗?
谢谢
塞德
PS。再读一读我想做的事:
http://skaug.no/ingvald/2010/10/javascript_unit_testing/
http://www.build-doctor.com/2010/12/08/javascript-bdd-jasmine/
发布于 2014-01-26 10:07:29
我遇到了同样的问题,并通过修改env.hino.1.2.js来解决它。
if (!base) {
base = 'file://' + Envjs.getcwd() + '/';
}->
if (!base) {
base = 'file:///' + Envjs.getcwd() + '/';
}发布于 2012-07-17 10:11:16
希望我能正确理解您的查询--下面的内容看上去如何?(你可能需要调整一下baseURL,如果我把它弄坏了)。
职能;
function resolvePath (relativePath) {
var protocol = "file:///c:/";
var baseUrl = "source/JasmineTest";
var reUpward = /\.\.\//g;
var upwardCount = (relativePath.match(reUpward) || []).length;
return protocol + (!upwardCount ? baseUrl : baseUrl.split("/").slice(0, -upwardCount).join("/")) + "/" + relativePath.replace(reUpward, "");
}实例调用;
resolvePath("SpecRunner.html");
// "file:///c:/source/JasmineTest/SpecRunner.html"
resolvePath("path/SpecRunner.html");
// "file:///c:/source/JasmineTest/path/SpecRunner.html"
resolvePath("../../SpecRunner.html");
// "file:///c://SpecRunner.html"
resolvePath("../SpecRunner.html");
// "file:///c:/source/SpecRunner.html"
resolvePath("SpecRunner.html");
// "file:///c:/source/JasmineTest/SpecRunner.html"这里还有一个更长的版本,应该更容易理解,它与resolvePath相同;
function longerVersionOfResolvePath (relativePath) {
var protocol = "file:///c:/";
var baseUrl = "source/JasmineTest";
var reUpward = /\.\.\//g;
var upwardCount = (relativePath.match(reUpward) || []).length;
var walkUpwards = upwardCount > 0;
var relativePathWithUpwardStepsRemoved = relativePath.replace(reUpward, "");
var folderWalkedUpTo = baseUrl.split("/").slice(0, -upwardCount).join("/");
if (walkUpwards) {
return protocol + folderWalkedUpTo + "/" + relativePathWithUpwardStepsRemoved;
}
else {
return protocol + baseUrl + "/" + relativePath;
}
}https://stackoverflow.com/questions/10992991
复制相似问题