如何创建一个必须在提交时执行测试的jenkins作业?

时间:2017-06-20 14:25:47

标签: jenkins ionic-framework jasmine

我是从詹金斯开始的。

我想,每次我执行git commit(或push?)时,我的离子项目的jasmine测试都已执行,并且必须在提交之前完成。

实际上,它有两个问题:

  • 如何用Jenkins执行茉莉花测试?

此时我用:

执行测试
npm test
  • 如何通过提交(或推送)执行此测试?

由于 最好的问候

2 个答案:

答案 0 :(得分:1)

有关于添加此功能的a ticket

最后票证已关闭

  

slackersoft于2016年12月2日发表评论

     

此时,我认为将代码留给专门为此构建的众多外部库之一的代码更有意义。

关联外部库可以是:

答案 1 :(得分:1)

您有两种方法可以完成任务。

  1. GIT Hook:在提交或推送后从GIT执行Jasmine测试
  2. Jenkins使用GIT Hook触发:从Jenkins检查回购并执行Jasmine测试
  3. 来自GIT的钩子

    在git repo中查找隐藏目录,你会找到一个名为“hooks”的目录,里面有很多钩子的例子:

    首先列出您的repo主目录的内容:

    ls -ltra
    

    您应该看到类似的内容:

    m.ortiz.montealegre@CPX-XYR3G1DTHBU ~/-argentina/.git
    $ vim hooks/
    applypatch-msg.sample      pre-applypatch.sample      pre-push.sample            update.sample
    commit-msg.sample          pre-commit.sample          pre-rebase.sample
    post-update.sample         prepare-commit-msg.sample  pre-receive.sample
    

    您有how to setup hooks here的完整指南。

    在你的情况下,也许更新会做的事情:

      

    更新更新脚本与预接收脚本非常相似,   除了它为推动者试图的每个分支运行一次   更新

    Jenkins使用GIT Hooks触发

    在本文中,您将使用“Poll SCM”设置Jenkins项目构建触发器,但不指定计划。

    然后使用GIT的post-receive挂钩通知Jenkins Job有关更改:

    http://yourserver/jenkins/git/notifyCommit?url=<URL of the Git repository>?token=<get token from git to build remotely>
    

    我找到了示例here

    运行Jasmine测试

    我不知道你在使用哪个O.S我希望它是一个漂亮的Linux盒子。

    你可以用Jenkins实现几乎相同的功能。您需要考虑用户(您的用户)及其权限,并检查是否允许运行Jenkins实例的用户执行相同的操作。

    只需创建一个新的Jenkins项目并在测试中添加一个shell执行步骤,就像你说的那样:

    npm test
    

    关于您的特定环境有很多问题,但我认为这对您来说是一个很好的指南。