पर आधारित टोक्स रनिंग कमांड मेरा वर्तमान वर्कफ़्लो जिथब पीआरएस और ट्रेविस सीआई पर परीक्षण करता है, जिसमें टोक्स परीक्षण पायस्ट और कोडेक्लिम पर रिपोर्टिंग कवरेज है।एनएन परिवर्तनीय
travis.yml
os:
- linux
sudo: false
language: python
python:
- "3.3"
- "3.4"
- "3.5"
- "pypy3"
- "pypy3.3-5.2-alpha1"
- "nightly"
install: pip install tox-travis
script: tox
tox.ini
[tox]
envlist = py33, py34, py35, pypy3, docs, flake8, nightly, pypy3.3-5.2-alpha1
[tox:travis]
3.5 = py35, docs, flake8
[testenv]
deps = -rrequirements.txt
platform =
win: windows
linux: linux
commands =
py.test --cov=pyCardDeck --durations=10 tests
[testenv:py35]
commands =
py.test --cov=pyCardDeck --durations=10 tests
codeclimate-test-reporter --file .coverage
passenv =
CODECLIMATE_REPO_TOKEN
TRAVIS_BRANCH
TRAVIS_JOB_ID
TRAVIS_PULL_REQUEST
CI_NAME
हालांकि, ट्रैविस खींच लिए अनुरोध किया गया मेरी कवरेज रिपोर्टिंग असफल बनाता है के लिए मेरे पर्यावरण चर गुजर नहीं है। ट्रैविस प्रलेखन समाधान के रूप में यह पता चलता है:
script:
- 'if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then bash ./travis/run_on_pull_requests; fi'
- 'if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then bash ./travis/run_on_non_pull_requests; fi'
हालांकि, tox में इस रूप में tox उपप्रक्रिया अजगर मॉड्यूल उपयोग कर रहा है और एक कमांड (स्वाभाविक रूप से) के रूप में अगर नहीं पहचानता है काम नहीं करता।
मैं केवल कोड बनाने के लिए कोडेक्लिम-टेस्ट-रिपोर्टर कैसे चला सकता हूं और TRAVIS_PULL_REQUEST चर के आधार पर पुल अनुरोधों के लिए नहीं? क्या मुझे अपनी खुद की लिपि बनाना है और उसे कॉल करना है? क्या कोई बेहतर समाधान है?
'tox.ini' फ़ाइलें प्रवाह नियंत्रण को समझ में नहीं आती हैं (जो समझ में आता है, वे' .ini' फ़ाइलें हैं)। तर्क के साथ कस्टम स्क्रिप्ट बनाना एक विकल्प है। दूसरा विकल्प सीआई से संबंधित कार्यक्षमता को '.travis.yml' पर ले जाना है। दिन के अंत में, 'tox.ini' में तर्क होना चाहिए जो प्रत्येक देव स्थानीय मशीन पर चल सकता है और चलाया जाना चाहिए। ['पिलिंट'] (https://github.com/PyCQA/pylint/blob/master/tox.ini) ऐसा कुछ करता है। 'coveralls' venv को विष में घोषित किया गया है, लेकिन' .travis.yml' में प्रविष्टि से ट्रिगर किया जाता है। –
मुझे लगता है कि काम करने के लिए बैश के माध्यम से नियंत्रण प्रवाह करना है, आपको उप-प्रोसेस में 'खोल = ट्रू' पास करने के लिए टोक्स की आवश्यकता होगी। यह कड़ी-कोडित है, और बहुत गहरी दफन है: https://github.com/tox-dev/tox/blob/85cce631a1bab5fe056ed2cbbcab49ebaf51b259/tox/session.py#L226 – RecursivelyIronic
कुछ/'bin/bash -c' काम की तरह कुछ हो सकता है? – iScrE4m