We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
早些时候想知道人家开源的github上面的这俩badge是咋来的,大概知道是个代码编译成功,并测试通过,且展示测试代码覆盖率的东东,绿绿的看起来感觉很舒服很放心。
那么我们如何让自己的小代码也可以带上这看起来高大上,其实也没啥的东西呢。
首先我们的源码需要包含一些测试代码,并需要配置一些生成覆盖率的玩意。不想多说,随着tdd/bdd的流行,开源项目,不仅仅只是意味着贡献了一个开源项目,想要获得大家的信任和使用,对自己的源码就要有高要求,所以需要加测试,要把每一个函数都测试到(即代码覆盖率),让别人相信我的代码没有任何问题。而目前比较流行的测试栈一般为macha+istanbul+chai或者ava+istanbul+nyc等各种组合。
具体如何对源码进行测试并生成报告,可以参考这篇文章
Travish CI的意思是持续集成,在团队开发中,每个成员每天都会随时随地的进行代码的提交,如何防止提交的代码没有通过测试就成功提交,如何使得每次提交都能让每个成员得知,Travish CI让每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。
测试不通过的代码不能部署,配置了持续集成后,代码提交到服务器上,就可以自动跑测试,测试通过后,就可以部署到服务器上了。且Travis脚本可以做很多事情,可以模拟生产环境,进行项目的打包和其他编译操作,如果编译或者打包不通过,将无法成功提交到服务器,这里将要说的实际就是github服务器。
首先在项目根目录下添加.travis.yml文件
language: node_js repo_token: COVERALLS.IO_TOKEN node_js: - '7' cache: directories: - node_modules script: npm run nyc
这里表示当push代码到github的时候,travis会自执行了测试命令npm run nyc。
npm run nyc
"nyc": "nyc ava -vs && nyc report --reporter=html",
npm run nyc执行了测试代码并生成测试报告.
到travis CI的官网,打开想要实施自动持续部署的项目。
然后执行git的push操作,就能发现,travis该repo下已经开始自动部署测试了。可以看到控制台日志。
并且会发现,标题那里,出现了你想要的这玩意
点击这个badge,选择md格式,复制这个链接到你的项目的readme开头
再试这提交一次,你会发现,你的readme就多了这个绿色的表示passing的
本地安装coveralls工具
npm i -D coveralls
script里面添加一句coveralls命令
"coverage": "node ./node_modules/istanbul/lib/cli.js cover ./node_modules/mocha/bin/_mocha -- --compilers js:babel-core/register --reporter mochawesome -R spec --timeout 5000 --recursive", "coveralls": "npm run-script coverage && node ./node_modules/coveralls/bin/coveralls.js < coverage/lcov.info"
npm run coveralls`执行了代码覆盖率生成,并且将生成的数据发送到coveralls官网的服务器,关联到自己的对应的仓库。
然后在travis.yml末尾添加两句
after_script: npm run coveralls env: global: secure: 你的coveralls token加密后的
这里说一下这个secure怎么来的,首先到coveralls官网,使用github登陆,在ADD REPOS里面选择该repo
完了在repos里面该仓库下就能找到token
在项目根目录下新建.coveralls.yml,复制
service_name: travis-pro repo_token: 你的token
由于这个token不要暴露在代码中,我们先在.gitignore里面把这个文件ignore掉,然后安装travis将token加密一下,具体方法是,
ruby -v # 确保安装了ruby gem install travis # 注意: 在项目根目录下执行 travis encrypt COVERALLS_TOKE=你的token
就能得到很长的一段secure。
同时在界面底部找到badge图标,拿到md格式,粘贴到readme开头
然后提交代码,看到travis自动执行了两个脚本,一个是测试脚本,一个是代码覆盖率生成脚本,最后看到的界面是
travis:
coveralls:
The text was updated successfully, but these errors were encountered:
No branches or pull requests
早些时候想知道人家开源的github上面的这俩badge是咋来的,大概知道是个代码编译成功,并测试通过,且展示测试代码覆盖率的东东,绿绿的看起来感觉很舒服很放心。
那么我们如何让自己的小代码也可以带上这看起来高大上,其实也没啥的东西呢。
首先我们的源码需要包含一些测试代码,并需要配置一些生成覆盖率的玩意。不想多说,随着tdd/bdd的流行,开源项目,不仅仅只是意味着贡献了一个开源项目,想要获得大家的信任和使用,对自己的源码就要有高要求,所以需要加测试,要把每一个函数都测试到(即代码覆盖率),让别人相信我的代码没有任何问题。而目前比较流行的测试栈一般为macha+istanbul+chai或者ava+istanbul+nyc等各种组合。
具体如何对源码进行测试并生成报告,可以参考这篇文章
持续部署工具Travish CI
Travish CI的意思是持续集成,在团队开发中,每个成员每天都会随时随地的进行代码的提交,如何防止提交的代码没有通过测试就成功提交,如何使得每次提交都能让每个成员得知,Travish CI让每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。
测试不通过的代码不能部署,配置了持续集成后,代码提交到服务器上,就可以自动跑测试,测试通过后,就可以部署到服务器上了。且Travis脚本可以做很多事情,可以模拟生产环境,进行项目的打包和其他编译操作,如果编译或者打包不通过,将无法成功提交到服务器,这里将要说的实际就是github服务器。
首先在项目根目录下添加.travis.yml文件
language: node_js repo_token: COVERALLS.IO_TOKEN node_js: - '7' cache: directories: - node_modules script: npm run nyc
这里表示当push代码到github的时候,travis会自执行了测试命令
npm run nyc
。npm run nyc
执行了测试代码并生成测试报告.到travis CI的官网,打开想要实施自动持续部署的项目。
然后执行git的push操作,就能发现,travis该repo下已经开始自动部署测试了。可以看到控制台日志。
并且会发现,标题那里,出现了你想要的这玩意
点击这个badge,选择md格式,复制这个链接到你的项目的readme开头
再试这提交一次,你会发现,你的readme就多了这个绿色的表示passing的
测试覆盖率badge工具coveralls
本地安装coveralls工具
script里面添加一句coveralls命令
npm run coveralls`执行了代码覆盖率生成,并且将生成的数据发送到coveralls官网的服务器,关联到自己的对应的仓库。
然后在travis.yml末尾添加两句
这里说一下这个secure怎么来的,首先到coveralls官网,使用github登陆,在ADD REPOS里面选择该repo
完了在repos里面该仓库下就能找到token
在项目根目录下新建.coveralls.yml,复制
由于这个token不要暴露在代码中,我们先在.gitignore里面把这个文件ignore掉,然后安装travis将token加密一下,具体方法是,
就能得到很长的一段secure。
同时在界面底部找到badge图标,拿到md格式,粘贴到readme开头
然后提交代码,看到travis自动执行了两个脚本,一个是测试脚本,一个是代码覆盖率生成脚本,最后看到的界面是
travis:
coveralls:
The text was updated successfully, but these errors were encountered: