【问题标题】:What should a Python project structure look like for Travis CI to find and run tests?Travis CI 查找和运行测试的 Python 项目结构应该是什么样的?
【发布时间】:2015-09-06 01:41:51
【问题描述】:

我目前有一个带有以下.travis.yml 文件的项目:

language: python
install: "pip install tox"
script: "tox"

在本地,tox 正确执行并运行 35 个测试,但在 Travis CI 上,它运行 0 个测试

更多详情:https://travis-ci.org/neverendingqs/pyiterable/builds/78954867

我也尝试了其他方法,包括:

language: python
python:
  - "2.6"
  - "2.7"
  - "3.2"
  - "3.3"
  - "3.4"
  - "3.5.0b3"
  - "3.5-dev"
  - "nightly"
# also fails with just `nosetest` and no `install` step
install: "pip install coverage unittest2"
script: "nosetests --with-coverage --cover-package=pyiterable"

他们也找不到any tests

我的项目结构是Like This:

- ...
- <module>
- tests (for the module)
- ...

项目/文件夹的结构是否不正确?

【问题讨论】:

  • 您是否尝试过在 nosetest 命令中指定测试位置?我只在我的一个项目中使用 Travis CI,并使用 nosetest tests/ 运行测试。尝试将您的 tox.ini 调整为 nosetests tests/ --with-coverage --cover-package=pyiterable
  • 刚试了-没有成功=[
  • @bnlucas 我可以看看你的回购结构吗?
  • 是的,很抱歉。应该加了。 github.com/bnlucas/python-basehash

标签: python travis-ci nose tox


【解决方案1】:

文件夹结构没有问题。

看起来 Travis CI 上的文件被视为可执行文件(来自https://travis-ci.org/neverendingqs/pyiterable/builds/79049179 的日志):

nosetests --verbosity=3
nose.config: INFO: Ignoring files matching ['^\\.', '^_', '^setup\\.py$']
nose.selector: INFO: /home/travis/build/neverendingqs/pyiterable/LICENSE.txt is executable; skipped
nose.selector: INFO: /home/travis/build/neverendingqs/pyiterable/pyiterable/iterable.py is executable; skipped
nose.selector: INFO: /home/travis/build/neverendingqs/pyiterable/readme.md is executable; skipped
nose.selector: INFO: /home/travis/build/neverendingqs/pyiterable/setup.cfg is executable; skipped
nose.selector: INFO: /home/travis/build/neverendingqs/pyiterable/tox.ini is executable; skipped
nose.selector: INFO: /home/travis/build/neverendingqs/pyiterable/tests/test_iterable.py is executable; skipped

我将 tox.ini 更改为运行 nosetests--exe (nosetests --exe --with-coverage --cover-package=pyiterable),基于 Run all Tests in Directory Using Nose。在修复了一些不相关的错误之后,我能够让测试运行@https://travis-ci.org/neverendingqs/pyiterable/builds/79049983

【讨论】:

  • 澄清一下——不是 TravisCI 认为它们是可执行的——它们可执行的,至少根据当前的 GitHub 存储库(导航到任何文件,例如iterable.py 并在顶部看到它说“可执行”)。有时可执行文件是正确的调用,但我认为它不会在没有 shebang(#!/usr/bin/env python 或类似的)的情况下执行 - 所以我猜你要么想要两者(shebang 和可执行权限),要么都不想要。
  • 我的评论不同意,当您确实需要可执行的 Python 文件时,--exe 标记是要走的路 - 很好找!
猜你喜欢
  • 1970-01-01
  • 2019-05-10
  • 1970-01-01
  • 2011-02-12
  • 2015-01-04
  • 2011-09-13
  • 1970-01-01
  • 2013-09-04
  • 2016-05-09
相关资源
最近更新 更多