Testing 角度/核心/测试加载时的XHR错误(未找到404)
我正在使用Angular 2 RC 5,并希望集成Jasmine。每当我尝试导入@angular/core/testing时,我都会得到一个404 not found错误。我试着用谷歌搜索它,但什么都没用。 我跟随官方网站建立了Jasmine package.jsonTesting 角度/核心/测试加载时的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
{
"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();
});
});