V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
guyskk
V2EX  ›  程序员

travis-ci 不靠谱啊

  •  
  •   guyskk ·
    guyskk · 2016-04-11 11:41:14 +08:00 · 4829 次点击
    这是一个创建于 3148 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我用 travis-ci.org 对我的项目做持续集成测试,结果有个 bug 没测出来,后来还是自己找出来的。

    travis-ci 的测试

    自己运行的测试(版本号: 5efaedf )

    12 条回复    2016-04-12 10:19:50 +08:00
    orvice
        1
    orvice  
       2016-04-11 12:24:04 +08:00
    确实是。。

    前天跑个 phpunit 本地和 ci 跑的结果不一样...
    denghongcai
        2
    denghongcai  
       2016-04-11 13:08:54 +08:00
    最近我的项目还出现了明明看 build matrix 的详情都是通过的,但是最终还是报了 fail , true && true == false
    glasslion
        3
    glasslion  
       2016-04-11 13:28:09 +08:00
    测试不对居然怪 CI, 我也是醉了

    travis matrix 和 tox 是一类,两者混用肯定出问题.
    ```
    python:
    - "2.6"
    - "2.7"
    - "pypy"
    - "3.3"
    - "3.4"
    - "3.5"
    ```

    会生成 6 个 不同 Python 环境, 而不是把六种不同的 Python 塞到同一个 环境里.

    你自己贴的图里 是在 Python 3.5 下测试没通过. 而 travis 那边 tox 是报了 "ERROR: InterpreterNotFound: python3.5", 但返回值又是 0. 真要背锅的话也应该是让 tox 背.
    janxin
        4
    janxin  
       2016-04-11 13:56:19 +08:00
    怪 CI 确实不应该啊
    matsuijurina
        5
    matsuijurina  
       2016-04-11 14:07:58 +08:00
    Travis CI 支持 docker ,如果担心有些奇奇怪怪的环境依赖问题导致测试结果和本地不一致,可以自己 build 一个 docker 容器传到 docker hub ,再用 Travis CI 来拉取这个容器跑测试。
    timonwong
        6
    timonwong  
       2016-04-11 14:12:39 +08:00
    tox 和 travis matrix 混用可以,不过要指定 TOXENV

    https://github.com/owais/django-webpack-loader/pull/44/files
    guyskk
        7
    guyskk  
    OP
       2016-04-11 19:01:06 +08:00
    @glasslion @janxin
    这 6 个 不同 Python 环境里,最后一个是一定有 python3.5 环境的,我看了执行过程记录里面也运行了 python3.5 测试,另外 python3.4 也应该测试不通过的, travis 记录里面也运行了 python3.4 的测试,但它就是通过了。

    配置文件我是参考的 https://github.com/pallets/flask/blob/master/.travis.yml ,它也用的 tox ,没有指定 TOXENV 。
    tinyproxy
        8
    tinyproxy  
       2016-04-11 19:17:16 +08:00   ❤️ 1
    我之前最奇葩的是 pod install 时, umeng 一个资源放国内被 GFW 干了,用个第三方的 CI 还得自己搭建一个 proxy server ,这你敢信?
    glasslion
        9
    glasslion  
       2016-04-11 19:50:41 +08:00   ❤️ 1
    @guyskk Flask 使用了 `tox -e`.

    Python3.5 的报错是因为 Python3.5 里 namedtuple 有 __dict__ 而 Python 3.5.1 没有 http://bugs.python.org/issue24931
    guyskk
        10
    guyskk  
    OP
       2016-04-11 20:02:20 +08:00
    @glasslion
    thanks
    damngoto
        11
    damngoto  
       2016-04-12 10:09:15 +08:00
    @janxin 没什么不应该的,事实上没哪个 CI 不坑的.
    我用 semaphoreci 也出现过不管 mac,windows,linxu 都没问题,一放到 CI 上就有个地方死活跑不过.
    最后只能加环境变量放过.
    janxin
        12
    janxin  
       2016-04-12 10:19:50 +08:00
    @damngoto 一般都是环境问题吧,我现在很多东西跑过 CI 都没什么问题,先检查为什么不过吧。有时候很多都是配置和环境依赖问题。
    当然有些是 Docker 的问题另说。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1352 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:39 · PVG 01:39 · LAX 09:39 · JFK 12:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.