为什么我得到404通过业力测试访问此文件的信息

时间:2018-08-21 11:35:01

标签: javascript testing jasmine karma-runner

MCVE位于this github repo

我正在研究一个JavaScript应用程序,该应用程序在加载时会读取清单文件。我希望能够测试该功能是否有效。我有这个测试功能:

it('We can get a manifest file', function(doneFn) {
        manifest=""
        console.log(window.location.pathname);
        console.log("1")
        load_manifest("/Users/joepublic/MCVE/manifest.json");

        console.log("2")
        console.log(manifest.length)
        setTimeout(expect(manifest.length).not.toBeLessThan(1),4000);
        console.log(manifest);
        doneFn();
        });         
    });

我正在测试的功能如下:

function load_manifest(filename){
    //go and get a manifest. We're starting with the one in the root of the template for now.
      var req = new XMLHttpRequest();
          console.log("a"); 
      req.open("GET", filename);
      req.send(null);
    req.onload = function() {

        if (req.readyState == 4 && req.status == 200) {
           console.log("hello"); 
           console.log(req.responseText); 
           manifest= JSON.parse(req.responseText);
        } else {
            console.log("Problem reading file");
        }
    };
          console.log("b"); 

} 

因果报应的输出为:

MacBook-Air:MCVE joepublic$ karma start my.conf.js
21 08 2018 12:39:51.453:WARN [karma]: No captured browser, open http://localhost:9876/
21 08 2018 12:39:51.466:INFO [karma]: Karma v3.0.0 server started at http://0.0.0.0:9876/
21 08 2018 12:39:51.467:INFO [launcher]: Launching browser Chrome with unlimited concurrency
21 08 2018 12:39:51.482:INFO [launcher]: Starting browser Chrome
21 08 2018 12:39:57.270:INFO [Chrome 68.0.3440 (Mac OS X 10.13.4)]: Connected on socket yZegecjIaWSc9KrEAAAA with id 47010677
21 08 2018 12:39:57.507:WARN [web-server]: 404: /Users/joepublic/MCVE/manifest.json
LOG: '/context.html'
LOG: '1'
LOG: 'a'
LOG: 'b'
LOG: '2'
LOG: 0
LOG: ''
LOG: 'Problem reading file'
Chrome 68.0.3440 (Mac OS X 10.13.4) Displaying OBF on the index page Test Name property We can get a manifest file FAILED
    Expected 0 not to be less than 1.
        at <Jasmine>
        at UserContext.<anonymous> (read_data_test.js:30:43)
        at <Jasmine>
Chrome 68.0.3440 (Mac OS X 10.13.4): Executed 1 of 1 (1 FAILED) ERROR (0.059 secs / 0.012 secs)

我正在获取404-但是“ ls /Users/joepublic/MCVE/manifest.json”发现文件很好...发生了什么事?

1 个答案:

答案 0 :(得分:0)

404: /Users/joepublic/MCVE/manifest.json

URL http://localhost:9876/Users/joepublic/MCVE/manifest.json是404错误。

  

但是“ ls /Users/joepublic/MCVE/manifest.json”发现文件很好

这是本地文件系统上的路径。这不是提供的HTTP URL,而是您测试运行的Web服务器正在运行。