Testing 角度/核心/测试加载时的XHR错误(未找到404)

Testing 角度/核心/测试加载时的XHR错误(未找到404),testing,angular,jasmine,Testing,Angular,Jasmine,我正在使用Angular 2 RC 5,并希望集成Jasmine。每当我尝试导入@angular/core/testing时,我都会得到一个404 not found错误。我试着用谷歌搜索它,但什么都没用。 我跟随官方网站建立了Jasmine package.json { "name": "angular2-quickstart", "version": "1.0.0", "scripts": { "start": "tsc && concurrent

我正在使用Angular 2 RC 5,并希望集成Jasmine。每当我尝试导入@angular/core/testing时,我都会得到一个404 not found错误。我试着用谷歌搜索它,但什么都没用。 我跟随官方网站建立了Jasmine

package.json

    {
  "name": "angular2-quickstart",
  "version": "1.0.0",
  "scripts": {
    "start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\" ",
    "lite": "lite-server",
    "postinstall": "typings install",
    "tsc": "tsc",
    "tsc:w": "tsc -w",
    "typings": "typings",
    "lite-server-test": "lite-server --config=liteserver-test-config.json",
    "test": "tsc && concurrently \"npm run tsc:w\" \"npm run lite-server-test\" "
  },
  "license": "ISC",
  "dependencies": {
    "@angular/common": "2.0.0-rc.5",
    "@angular/compiler": "2.0.0-rc.5",
    "@angular/core": "2.0.0-rc.5",
    "@angular/forms": "0.3.0",
    "@angular/http": "2.0.0-rc.5",
    "@angular/platform-browser": "2.0.0-rc.5",
    "@angular/platform-browser-dynamic": "2.0.0-rc.5",
    "@angular/router": "3.0.0-rc.1",
    "@angular/router-deprecated": "2.0.0-rc.2",
    "@angular/upgrade": "2.0.0-rc.5",
    "systemjs": "0.19.27",
    "core-js": "^2.4.0",
    "reflect-metadata": "^0.1.3",
    "rxjs": "5.0.0-beta.6",
    "zone.js": "^0.6.12",
    "angular2-in-memory-web-api": "0.0.15",
    "bootstrap": "^3.3.6"

  },
  "devDependencies": {
    "concurrently": "^2.0.0",
    "jasmine-core": "2.4.1",
    "lite-server": "^2.2.0",
    "typescript": "^1.8.10",
    "typings": "^1.0.4"
  }
}
unit-tests.html

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8">
    <title>Ng App Unit Tests</title>
    <link rel="stylesheet" href="/node_modules/jasmine-core/lib/jasmine-core/jasmine.css">
    <script src="/node_modules/jasmine-core/lib/jasmine-core/jasmine.js"></script>
    <script src="/node_modules/jasmine-core/lib/jasmine-core/jasmine-html.js"></script>
    <script src="/node_modules/jasmine-core/lib/jasmine-core/boot.js"></script>

    <script src="app/1st.spec.js"></script>
</head>
<body>
<script src="/node_modules/systemjs/dist/system.src.js"></script>

<script>

    System.config({
        packages: {
            'app': {defaultExtension: 'js'}
        }
    });

    System.import('app/1st.spec')

            .then(window.onload)
            .catch(console.error.bind(console));
</script>
</body>
</html>
无需使用/核心/测试,它就可以正常工作


您是否检查过节点模块中是否有core/testing文件夹?我在RC5中有相同的包,我可以从angular/core/testing导入而没有任何问题。是的,它就在那里,所以很奇怪,我尝试从头开始创建一个新项目,但它仍然有相同的错误。也许问题来自systemJS,但这很奇怪,因为如果您使用Angular2 systemJS配置,它本身应该运行良好。您是否可以从“@angular/core”;”导入其他@angular文件,例如“导入{Injectable}”?wwwroot node_modules文件夹中有什么?从@angular/core导入可注入可以正常工作。你说的wwwroot是什么意思?根据ASP.NET的说法,我使用ASP.NET内核来处理服务器端,它是我的文件夹,所有静态文件、脚本、图像都应该与HTML文件一起放置在这个文件夹中。基本上,您使用NPM下载Angular2之类的包,然后在TypeScript配置中使用Gulp或manage来管理应用程序的.js输出,然后使用SystemJS将文件映射到应用程序。在我的例子中,它是wwwroot文件夹,我在其中复制所有需要的文件以及我需要的特定节点模块。
import { Hero } from './hero';
import {TestBed, addProviders} from "@angular/core/testing";
let service: Hero;
describe('Hero', () => {
    beforeEach(() => {
       addProviders([Hero]);
    });

    it('has name', () => {
        let hero: Hero = {id: 1, name: 'Super Cat'};
        expect(hero.name).toEqual('Super Cat');
    });
    it('has id', () => {
        let hero: Hero = {id: 1, name: 'Super Cat'};
        expect(hero.id).toEqual(1);
    });
    it('inject', () => {
        expect(service.id).toBeNull();
    });
});