【问题标题】:Git hooks for executing mocha-tests before commit or merge用于在提交或合并之前执行 mocha 测试的 Git 钩子
【发布时间】:2016-08-03 15:19:33
【问题描述】:

我不太确定,如果这可以用 git hooks 完成 - 这就是我将这个问题分成三个部分的原因:

  1. 首先做一个测试(mocha/phantomjs/meteor)。如果通过了,就可以提交了

为此,我尝试了这样的方法:

挂钩/预提交

#!/bin/bash
// First check if current branch is 'development'
meteor test --once --driver-package dispatch:mocha-phantomjs
chimp --ddp=http://localhost:3000 --mocha --path=tests --browser=phantomjs

所以我期望的是,测试首先执行。如果任何测试失败,则不会进行任何提交,如果全部通过,则将执行提交。 如您所见,我对 bash 脚本不是很熟悉(我使用的是 MacOS)。这就是为什么我需要你的帮助才能让这个简单的脚本运行起来。

Mocha 文档 (https://mochajs.org/) 说存在“CI 支持的正确退出状态”。因此,如果我正确理解这一点,如果任何测试失败,它将执行exit 1

  1. 如果从 development 合并到 master 分支,只需进行测试

由于测试需要几分钟时间,我想如果它们只在开发分支合并到主分支之前运行会更聪明一些。 所以在主分支上总是有刚刚测试过的代码。但是我如何获得当前分支是哪个分支的信息?而且我刚刚找到信息,只有post-merge,但没有pre-merge 钩子。

  1. 合并后执行Makefile部署

成功合并后,我想执行make 来部署到服务器。因此我会使用post-merge-hook。

挂钩/合并后

#!/bin/bash
// be sure we are in 'master' branch
make

但是我如何知道合并是否成功(或者这是否会被 git 检查?)以及如何正确执行 makefile?

所以基本上我正在努力使用正确的 bash 脚本......

【问题讨论】:

    标签: git makefile phantomjs mocha.js githooks


    【解决方案1】:

    Mocha 确实会出现错误退出,但您的提交挂钩不会。

    mocha 测试/mocha/ --recursive -b || 1号出口

    为我做了诀窍。

    【讨论】:

    • 你能再解释一下吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 2016-07-16
    • 1970-01-01
    • 1970-01-01
    • 2014-04-21
    • 1970-01-01
    相关资源
    最近更新 更多