javascript之Jasmine JS覆盖没有仪器不工作

webabcd 阅读:226 2026-07-31 16:07:56 评论:0

我一定错过了一些东西。我有 Jasmine 测试,我想检查该测试对 onTheMove-Tree.js 文件的覆盖范围。
我正在使用default example server setup服务器在 http://localhost:8080/jscoverage.html?/index.html 上运行。
我已经修改了 index.html 文件以包含我放在 \doc\example\dependencies 中的依赖项(帖子底部的代码),同一文件夹中是我的 Jasmine 测试文件 'jasmine- OnTheMove-OnTheMove_ObjectTreeStructure-Tests.js'。
我打算获取 onTheMove-Tree.js 测试覆盖率的文件位于 doc\example 目录中,与 index.html 位于同一目录中。我使用以下命令启动服务器:

C:\Users\Administrator\Downloads\JSCover-0.2.0>java -jar target/dist/JSCover-all 
.jar -ws --branch --document-root=doc/example --no-instrument=doc/example/depend 
encies 

但是我可以看到依赖项文件夹中的文件正在被修改(检查屏幕截图),这会导致所有测试失败(相同的屏幕截图)。 为什么 JSCover 在 \doc\example\dependencies 中检测文件?

Index.html代码:

<html xmlns="http://www.w3.org/1999/xhtml"><head> 
<title>JavaScript Tests</title> 
 
<script type="text/javascript"> 
    window.onTheMoveTest = {}; 
</script> 
 
<script type="text/javascript" src="/dependencies/jquery-1.7.1.min.js"></script> 
<script type="text/javascript" src="/dependencies/ua-parser.min.js"></script> 
<script type="text/javascript" src="/dependencies/knockout-3.0.0.custom.min.js">    </script> 
<script type="text/javascript" src="/dependencies/knockout.validation.js"></script> 
<script type="text/javascript" src="onTheMove-Tree.js"></script> 
<script type="text/javascript" src="/dependencies/jasmine.js"></script> 
<script type="text/javascript" src="/dependencies/jasmine-html.js"></script> 
<script type="text/javascript" src="/dependencies/jasmine-jquery-1.7.0.js"></script> 
<script type="text/javascript" src="/dependencies/jasmine-OnTheMove-OnTheMove_ObjectTreeStructure-Tests.js"></script> 
 
<script type="text/javascript"> 
    (function () { 
 
        "use strict"; 
 
        var jasmineEnv = jasmine.getEnv(); 
        jasmineEnv.updateInterval = 250; 
 
        var htmlReporter = new jasmine.HtmlReporter(); 
        jasmineEnv.addReporter(htmlReporter); 
 
        jasmineEnv.specFilter = function (spec) { 
            return htmlReporter.specFilter(spec); 
        }; 
 
        var currentWindowOnload = window.onload; 
        window.onload = function () { 
            if (currentWindowOnload) { 
                currentWindowOnload(); 
            } 
 
            execJasmine(); 
        }; 
 
        function execJasmine() { 
            jasmineEnv.execute(); 
        } 
 
    })(); 
</script> 
</head> 
<body></body></html> 

请您参考如下方法:

--no-instrument=URL 是基于 URL 路径的,而不是基于文件系统的,因此您需要 --no-instrument=/dependencies


标签:JavaScript
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号