代码之家  ›  专栏  ›  技术社区  ›  MikeiLL

Travis CI是否检查多个。特拉维斯。yml文件?

  •  1
  • MikeiLL  · 技术社区  · 6 年前

    我刚开始使用 Travis CI

    我在回购协议的TLD中有此文件:

    sudo: false
    language: php
    php:
      - '7.1'
    

    Travis CI是这样看待我的配置的:

    {
      "os": "linux",
      "php": "7.1",
      "dist": "trusty",
      "sudo": false,
      "group": "stable",
      "language": "php",
    }
    

    为什么构建 failing 有phpunit错误?可能是因为另一个原因吗 .travis.yml 回购协议中的文件?

    Network availability confirmed.
    ...edited for brevity...
    git.checkout
    0.34s$ git clone  ...edited for brevity...
    $ php --version
    PHP 7.1.11 (cli) (built: Oct 26 2017 16:25:55) ( ZTS )
    Copyright (c) 1997-2017 The PHP Group
    ...edited for brevity...
    $ composer --version
    Composer version 1.6.5 2018-05-04 11:44:59
    0.15s$ phpunit
    PHPUnit 6.4.3 by Sebastian Bergmann and contributors.
    Usage: phpunit [options] UnitTest [UnitTest.php]
           phpunit [options] <directory>
    ...edited for brevity...
    
    The command "phpunit" exited with 2.
    Done. Your build exited with 1.
    

    我不知道下一步该去哪里看。

    2 回复  |  直到 6 年前
        1
  •  3
  •   Elliot B.    6 年前

    phpunit 退出时出错,因为您尚未告知 单元测试 在哪里查找您的测试。通常,您可以通过放置 phpunit.xml 在回购的基本目录中。除此之外, phpunit。xml 说明 单元测试 哪个目录包含您的测试。

    你的 phpunit。xml 应包含以下内容:

    <?xml version="1.0" encoding="UTF-8"?>
    <phpunit colors="true">
        <testsuites>
            <testsuite name="Your application name">
                <directory>./tests/</directory>
            </testsuite>
        </testsuites>
    </phpunit>
    

    代替 ./tests/ 使用包含测试文件的文件夹的相对路径。

    要测试配置,请运行 单元测试 而在回购的基本目录中。您应该看到与Travis CI相同的结果。

        2
  •  0
  •   MikeiLL    6 年前

    根据 docs ,Travis CI使用 .travis.yml 在存储库的根目录中创建文件,以了解项目以及希望如何执行构建。“”

    它想要 某物 默认为运行phpunit,如果不运行至少一个测试,phpunit将失败。

    因此,对于占位符构建,可以在与 .特拉维斯。yml公司 文件,使其可执行并按如下方式指向它:

    sudo: false
    language: php
    php:
      - '7.1'
    
    before_install:
      - chmod +x build.sh
    
    script: ./build.sh
    

    这是一个“构建”脚本:

    #!/usr/bin/env bash
    
    echo This is a placeholder.