cucumber_java从入门到精通(5)使用maven创建cucumber_java项目
2015-10-18 06:00
633 查看
cucumber java从入门到精通(5)使用maven创建cucumber java项目
前几节我们已经在感性上认识了cucumber的基本功能以及BDD测试的基本流程,我们渐进重构,一步一步的向目标逼近。这些实践都是小而美的,但美中不足的是我们在项目工程化上进展缓慢。目前我们的项目在工程化上存在下面的一些问题:
依赖包管理:我们的依赖包管理非常的原生态。如果cucumber java升级或其他依赖组件升级,我们遇到的麻烦是可以预计的;
构建系统:我们的构建系统还处于刀耕火种的时代,只靠bat脚本很显然经不起复杂长期项目的反复折腾;
IDE:我们目前使用的仅仅是纯文本编辑器,尽管没什么不好的,但是使用IDE对于初学者来说还是有好处的。当然如果你是熟练的大神级人物,用notepad去写java也未尝不可;
解决工程化问题
下面我们来研究一下改进工程化问题的一些解决方案,这就是所谓的技术预研。使用maven来解决我们的依赖包管理及构建问题;
使用eclipse作为我们的java IDE;
下载eclipse及配置
在这里下载eclipse,注意32位版本和64位版本的区别;下载安装完成后,安装eclipse+maven的插件M2Eclipse。安装过程如下:
先点击菜单里的
Help-Istall Software
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/23/fbaee969e65b5c4f1c4523cd7c2d481e.png)
在弹出窗口的work with里输入
http://download.eclipse.org/technology/m2e/releases,然后按照下图的指示来
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/23/ecc16f5fb4f3496a47dd06a6a8fd4042.png)
一直下一步之后,m2eclipse就应该安装成功了。
新建maven项目
选择File-New-Other,如下图所示
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/23/991f66bcf63da2c7c7d60dd19ce5f7d1.png)
然后选Maven Project,点击Next
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/23/288770313ae3b472f322ecdc84a05c12.png)
然后直接Next
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/23/d0fca419a6bc8d5a2a38d8d7222cf05a.png)
然后
Group Id填写info.itest,
Artifact Id填todo_list。点击Finish
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/23/77ed77d363cb7e3bc19be8d10bc1764d.png)
然后双击打开
pom.xml文件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/23/a73c4968ce7d832fa4092d329faca2e7.png)
进入编辑状态,如下图所示
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/23/540644e80947911f9caf5faa782c34b3.png)
把pom.xml替换为下面的代码
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>info.iest</groupId> <artifactId>todo_list</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>todo_list</name> <url>http://maven.apache.org</url> <properties> <cucumber.version>1.2.4</cucumber.version> <junit.version>4.12</junit.version> <java.version>1.8</java.version> <maven.compiler.version>3.3</maven.compiler.version> </properties> <dependencies> <dependency> <groupId>info.cukes</groupId> <artifactId>cucumber-java</artifactId> <version>${cucumber.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>info.cukes</groupId> <artifactId>cucumber-junit</artifactId> <version>${cucumber.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven.compiler.version}</version> <configuration> <encoding>UTF-8</encoding> <source>${java.version}</source> <target>${java.version}</target> <compilerArgument>-Werror</compilerArgument> </configuration> </plugin> </plugins> </build> </project>
注意:这里的java.version请替换成你相应的java版本
配置及运行cucumber
打开AppTest.java文件,将其替换为以下的代码
package info.iest.todo_list; import cucumber.api.CucumberOptions; import cucumber.api.junit.Cucumber; import org.junit.runner.RunWith; @RunWith(Cucumber.class) @CucumberOptions(plugin={"pretty"}, features={"src/test/features"}) public class AppTest { }
然后在test文件夹下创建features文件夹,并创建todo.feature文件,如下图所示
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/23/d2c5196021b242d0c757913254fb5ceb.png)
编辑todo.feature文件,输入下面的内容
#language: zh-CN 功能:任务管理 场景大纲: 完成任务 假设 我的任务清单里有<total>个任务 当 我完成<finished>件任务之后 那么 我还剩下<left>件未完成的任务 例子: | total | finished | left | | 3 | 1 | 2 | | 5 | 1 | 4 |
没啥新鲜的,就是我们上节所重构的代码。
然后在Package Explorer中右键点击todo_list,选择Run As-Maven Test,如下图所示
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/23/a536f445354177cbd9b2e7e4757dc81a.png)
运行完成后,结果应该是如下图所示
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/23/f2de59049dd199e8caa582c90fad6958.png)
到目前为止,我们已经用maven配置好了cucumber的开发环境,并完成了smoke test。下一节我们会把前几节实现的TodoList移植到这个maven项目
相关文章推荐
- Spring - MVC Framework 教程
- Amazon OA2准备——最大公约数
- Java性能调优
- java中最常用jar包的用途说明,适合初学者
- Java动态编程初探——Javassist
- JAVA程序性能分析及调优浅析
- JAVA--多线程同步,锁对象,条件对象
- 成为JavaGC专家(1)—深入浅出Java垃圾回收机制
- 成为JavaGC专家(2)—如何监控Java垃圾回收机制
- 成为Java GC专家(3)—如何优化Java垃圾回收机制
- 权限管理:RBAC(基于角色的访问控制)SpringMVC实现
- 成为Java GC专家(5)—Java性能调优原则
- 初学Java--计算器
- 用Eclipse Maven 创建 Web 3.0 项目问题 正确的处理步骤
- Java基础(4):类
- Java基础(3):文件输入输出
- 在spring中使用junit测试
- JAVA中,instanceof的讲解
- Java基础---IO(二)--Properties类、打印流、序列流、对象操作流、数据输入输出流
- Struts2中 JSP使用request.setAttribute()后,在Action中为什么取不到值?