简体   繁体   English

为什么我通过业力测试获得 404 访问此文件

[英]Why am I getting a 404 accessing this file via karma test

MCVE is at this github repo . MCVE 在这个 github repo

I'm working on a javascript application that reads a manifest file when loaded.我正在开发一个在加载时读取清单文件的 javascript 应用程序。 I'd like to be able to test that the function works.我希望能够测试该功能是否有效。 I've got this test function:我有这个测试功能:

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();
        });         
    });

and the function I'm testing looks like this:我正在测试的功能如下所示:

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"); 

} 

The output from karma is:业力的输出是:

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)

I'm getting a 404 - but "ls /Users/joepublic/MCVE/manifest.json" finds the file fine...what's going on?我收到 404 - 但“ls /Users/joepublic/MCVE/manifest.json”发现文件很好......发生了什么?

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

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

but "ls /Users/joepublic/MCVE/manifest.json" finds the file fine但是“ls /Users/joepublic/MCVE/manifest.json”发现文件很好

That is a path on your local file system.这是本地文件系统上的路径。 It is not an HTTP URL served up but the web server that your test running is running.它不是提供的 HTTP URL,而是运行测试的 Web 服务器。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM