Wie teste ich Python und C ++ in einer .travis.yml, ohne die C ++ mehrmals zu laufen?

Https://github.com/travis-ci/travis-ci/issues/538 scheint nicht wirklich zu helfen. Ich habe diese .travis.yml für libais:

language: python python: - "2.7" - "3.4" before_install: - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test - sudo apt-get update -qq install: - sudo apt-get install -qq gcc-4.8 g++-4.8 - CC=g++-4.8 python setup.py install script: - python setup.py test - (cd src && CC=gcc-4.8 CXX=g++-4.8 make -f Makefile-custom test) 

Die letzte Zeile des Skripts löst die C ++ – Tests aus.

Es ist toll, dass es die libais gunit C ++ Tests läuft, aber leider sind sie laufen 2x. Einmal für jede Python-Version. Ich würde es vorziehen, die zusätzliche Last nicht zu travis-ci hinzuzufügen. Gibt es eine Möglichkeit, das zu tun?

  • Python: ctypes + C malloc Fehler. C Speicherproblem oder Python / Ctypes Problem?
  • Wie kann ich git version info in cython-built .so Datei hinzufügen?
  • DLL nicht in Python laden
  • Ist die Leistung zwischen der Python- oder C ++ - Codierung von OpenCV unterschiedlich?
  • Namespace Spezifikation in Abwesenheit von Ambuguity
  • Umgeben von benutzerdefinierten C ++ - Zeigern in Cython
  • 2 Solutions collect form web for “Wie teste ich Python und C ++ in einer .travis.yml, ohne die C ++ mehrmals zu laufen?”

    Basierend auf Dominic's Antwort, sah ich auf http://docs.travis-ci.com/user/ci-environment/ und fand TRAVIS_PYTHON_VERSION. Also keine Notwendigkeit, mit irgendwelchen Dateien zu spielen.

     script: - python setup.py test - if [[ $TRAVIS_PYTHON_VERSION == '3.4' ]]; then (cd src && CC=gcc-4.8 CXX=g++-4.8 make -f Makefile-custom test); fi 

    Eine schnelle Idee: vielleicht könnten Sie einen Scheck für die Existenz einer Datei vor der Entscheidung, um Ihre C + + -Tests laufen zu tun?

    Z.B

     - [[ -f $FILE ]] || (cd src && CC=gcc-4.8 CXX=g++-4.8 make -f Makefile-custom test) 

    Die zu prüfende Datei könnte zB der Bericht Ihrer C ++ – Unit-Tests sein. Wenn es schon da ist, lauf sie nicht zum zweiten Mal.

    Python ist die beste Programmiersprache der Welt.