angular-seed — AngularJS种子项目
AngularJS Seed 是典型 AngularJS web 应用的应用骨架,可以快速启动你的 AngularJS webapp 项目和这些项目的开发环境。
AngularJS Seed 包括一个示例 AngularJS 应用,预配置安装 Angular 框架,为满足即时 Web 开发提供一些开发和测试工具。
Seed 应用只是展示如何连接两个控制器和视图。。
开始
准备条件
你需要先用 git 将angular-seed克隆到自己的本地,然后安装它的依赖。
如果你没有安装过git,你可已再 http://git-scm.com/获取他。
当然我们还需要用node.js来初始化和测试angular-seed,如果你没有安装node.js及相应的NPM,你可以从http://nodejs.org/获取它。
克隆 angular-seed
使用git克隆 angular-seed,并进入 angular-seed目录
- git clone https://github.com/angular/angular-seed.git
- cd angular-seed
如果你想获取没有历史commit的Angular-seed源码,请使用
- git clone --depth=1 https://github.com/angular/angular-seed.git <your-project-name>
安装依赖
angular-seed已经预先设定npm去自动运行bower,所以我们能这样简单运行:
- npm install
后面的场景,也将调用bower install。安装后,你能发现有两个新文件夹在你的项目中。
node_modules- 包含我们需要的npm工具包。app/bower_components- 包含angular的框架文件。
运行项目
angular-seed已经预先项目带有一个简单的开发Web服务器,我们可以很简单的启动它。
- npm start
在浏览器中访问应用程序,http://localhost:8000/index.html。
目录结构
- app/-->项目的源文件
- app.css -->默认的css文件
- components/-->所有应用程序的特定模块
- version/-->相关的组件
- version.js -->基本模块的声明
- version_test.js -->基本模块的测试
- version-directive.js -->用户定义的指令
- version-directive_test.js -->用户定义的指令测试
- interpolate-filter.js -->用户定义的过滤器
- interpolate-filter_test.js -->用户定义的过滤器测试
- view1/--> view1视图模板和控制器
- view1.html -->局部模板
- view1.js -->控制器
- view1_test.js -->控制器的测试
- view2/--> view2视图模板和控制器
- view2.html -->局部模板
- view2.js -->控制器
- view2_test.js -->控制器的测试
- app.js -->主项目模块
- index.html -->项目布局模板
- index-async.html -->就像index.html,但异步加载JS文件
- karma.conf.js -->用于运行karma单元测试的配置文件
- e2e-tests/-->端对端测试
- protractor-conf.js -->Protractor配置文件
- scenarios.js -->Protractor端对端测试的运行文件
测试
有两种测试,单元测试和端对端测试。
运行单元测试
angular-seed预先配置了单元测试。它们是Jasmine写的,我们使用 Karma测试运行器运行它。有一个默认的 Karma文件去运行它。
- 你能在
karma.conf.js查看单元测试配置。 - 每个运行的代码下有它对应的单元测试代码,并命名为
..._test.js
最简单的运行单元测试,使用以下脚本:
- npm test
这句命令将启动 Karma来执行单元测试。而且, Karma会监控代码和测试文件的变化,并重新运行单元测试。但每次更改都运行单元测试,可能会打破你预期的代码功能。
你也可以叫Karma运行简单的单元测试后就退出。这样可有效的检验一个特定版本的代码是否是按预期运行的。使用下面的脚本:
- npm run test-single-run
端对端测试
angular-seed预先配置的端对端测试是用 Jasmine写的,用 Protractor端对端测试器运行它。它使用本地事件,并对angular应用具有特殊功能。
- 你能在
e2e-tests/protractor-conf.js查看端对端测试配置。 - 运行
e2e-tests/scenarios.js进行端对端测试。
Protractor模拟与我们的Web应用程序的交互并且验证应用程序是否正确响应。所以,我们的web服务器必须能被应用程序正常的打开,以便Protractor能与它互动。使用下面的脚本:
- npm start
运行Protractor需要先安装 WebDriver,angular-seed使用以下代码安装它:
- npm run update-webdriver
这句脚本将会下载并安装最新的独立的WebDriver工具。
确保你的web服务器环境运行起来了,并且 WebDriver已经更新过了,你可以进行端对端测试了,运行以下代码:
- npm run protractor
提醒: Protractor使用Selenium Standalone Server,这需要你的本地机器安装了Java Development Kit (JDK)。在命令行输入 java -version检查下JDK是否安装。
若没安装,你可以点击这里下载它。
angular-seed — AngularJS种子项目的更多相关文章
- Angular系列----AngularJS入门教程00:引导程序(转载)
我们现在开始准备编写AngularJS应用——phonecat.这一步骤(步骤0),您将会熟悉重要的源代码文件,学习启动包含AngularJS种子项目的开发环境,并在浏览器端运行应用. 进入angul ...
- 迈向angularjs2系列(8):angular cli和angular2种子项目
文章目录 1.angular cli快速搭建项目 2.angular2-seed 3.手动配置 题外话:如何更好的阅读本篇文章 一: angular cli的安装 Angular-cli(命令行界面, ...
- Angular企业级开发(5)-项目框架搭建
1.AngularJS Seed项目目录结构 AngularJS官方网站提供了一个angular-phonecat项目,另外一个就是Angular-Seed项目.所以大多数团队会基于Angular-S ...
- Angular系列------AngularJS入门教程:导言和准备(转载)
学习AngularJS的一个好方法是逐步完成本教程,它将引导您构建一个完整的AngularJS web应用程序. 该web应用是一个Android设备清单的目录列表,您可以筛选列表以便查看您感兴趣的设 ...
- Angular系列---- AngularJS入门教程03:AngularJS 模板(转载)
是时候给这些网页来点动态特性了——用AngularJS!我们这里为后面要加入的控制器添加了一个测试. 一个应用的代码架构有很多种.对于AngularJS应用,我们鼓励使用模型-视图-控制器(MVC)模 ...
- Angular系列----AngularJS入门教程01:AngularJS模板 (转载)
是时候给这些网页来点动态特性了——用AngularJS!我们这里为后面要加入的控制器添加了一个测试. 一个应用的代码架构有很多种.对于AngularJS应用,我们鼓励使用模型-视图-控制器(MVC)模 ...
- AngularJS+requireJS项目的目录结构设想
AngularJS+requireJS项目的目录结构设想 准备用AngularJS + require.js 作为新项目的底层框架,以下目录结果只是一个初步设想: /default 放页面,不过 ...
- Github+yeoman+gulp-angular初始化搭建angularjs前端项目框架
在上篇文章里面我们说到了Github账号的申请与配置 那么当你有了Github账号并创建了一个自己的Github项目之后,首要的当然是搭建自己的项目框架啦! 本人对自己的定位是web前端狗,常用开发框 ...
- JAVA8,SPRING,ANGULARJS对项目
java8+spring+angularjs 项目应用 最近有写一个电子订单商务网站,使用JAVA8,SPRING,ANGULARJS对项目使用的技术和大家分享. 第一次写博客,哪有不对需要改正的请联 ...
随机推荐
- Python中调用c语言(简单版)
Python中有时需要调用c程序中的函数.使用ctype库可以很方便地调用c语言.现说明方法,以及注意事项. c程序编译为.so文件: 我们需要的c语言文件为test.c,要从其中调用func(x,y ...
- Metinfo4.0 /member/save.php 任意用户密码修改
- Python xlsxwriter库 图表Demo
折线图 import xlsxwriter # 创建一个excel workbook = xlsxwriter.Workbook("chart_line.xlsx") # 创建一个 ...
- python 并发编程 socket 服务端 客户端 阻塞io行为
阻塞io行为 server.accept server.recv client.send recv,accept 分为两个阶段 1.wait for data 对方把数据经过网络延迟送到自己的操作系 ...
- 交换机安全学习笔记 第二章 MAC地址泛洪攻击
本文为书中相关知识的摘要,由于书中以思科设备为配置依据,所以笔记中补充了华为.H3C设备的相关配置.华为设备配置参考华为S2352EI 产品版本:V100R005C01文档版本:02. H3C配置参 ...
- CF498B Name That Tune(动态规划dp)
CF498B 动态规划f[i][j]表示前i秒时间听了j首歌的概率,则有: \(f[i][j]=∑f[i-k][j-1]*(1-p_j)^{k-1}*p_j\) k枚举i秒前的每一秒,要求前i-1秒都 ...
- 不用 Notepad++,还有更牛逼的选择!
来源:oschina.net/news/110987/no-notepad-plus-plus 这两天 Notepad++ 牛逼了,然后引发了大家的关注,具体事件内容请大家自行百度,其实作为文本编辑工 ...
- 面试官:new一个对象有哪两个过程?
Java在new一个对象的时候,会先查看对象所属的类有没有被加载到内存,如果没有的话,就会先通过类的全限定名来加载.加载并初始化类完成后,再进行对象的创建工作. 我们先假设是第一次使用该类,这样的话n ...
- redis内存满了怎么办?
redis最为缓存数据库,一般用于存储缓存数据,用于缓解数据库压力,但是缓存太多,内存满了怎么办呢.一般有以下几种方法 一.增加内存 redis存储于内存中,数据太多,占用太多内存,那么增加内存就是最 ...
- Comet OJ - Contest #13
Rank53. 第一次打这种比赛.还是有不少问题的,以后改吧. A题WA了两次罚了不少时. C写到一半发现只能过1,就先弃了. D一眼没看出来.第二眼看出来就是一个类似于复数的快速幂. 然后B切了. ...