python - tox+pytest 仅在 travis 上给出调用错误,代码为 -11

标签 python travis-ci pytest tox

我有代码,当我在本地使用 tox 进行测试时,可以通过所有测试。然而,在 Travis 上,它给出了以下错误:

tests/test_cli.py::test_spin ERROR: InvocationError for command /home/travis/build/21cmfast/21cmFAST/.tox/py36/bin/py.test -vv --basetemp=/home/travis/build/21cmfast/21cmFAST/.tox/py36/tmp --cov py21cmfast (exited with code -11)
___________________________________ summary ____________________________________
ERROR:   py36: commands failed

The command "tox" exited with 1.

完整输出位于https://travis-ci.org/21cmfast/21cmFAST/jobs/545483077

有人知道代码-11是什么意思吗?知道为什么它会在 travis 上失败而不是在本地吗?

有一点值得注意...test_spin 是一个相当的密集函数。

最佳答案

错误隐藏在此处的硬编码路径中:

EXTERNALTABLES = ffi.new("char[]", path.join(path.expanduser("~"), ".21CMMC").encode())
global_params.external_table_path = EXTERNALTABLES

Travis 环境没有定义路径 ~/.21CMMC,因此从那里读取尝试将会失败,从而导致段错误。如果将回溯转储到 SIGSEGV 信号上,您将看到类似于以下内容的输出:

tests/test_cli.py::test_spin T_RECFAST: Unable to open file: /home/travis/.21CMMC/External_tables/recfast_LCDM.dat for reading
Aborting
Called xion_RECFAST with z=35.000000, bailing out!
Called xion_RECFAST with z=35.000000, bailing out!
Fatal Python error: Segmentation fault
Current thread 0x00007fba4012d700 (most recent call first):
  File "/home/travis/build/21cmFAST/21cmFAST/.tox/py36/lib/python3.6/site-packages/py21cmfast/wrapper.py", line 765 in _call_c_func
  File "/home/travis/build/21cmFAST/21cmFAST/.tox/py36/lib/python3.6/site-packages/py21cmfast/wrapper.py", line 1641 in spin_temperature
  File "/home/travis/build/21cmFAST/21cmFAST/.tox/py36/lib/python3.6/site-packages/py21cmfast/cli.py", line 264 in spin
  File "/home/travis/build/21cmFAST/21cmFAST/.tox/py36/lib/python3.6/site-packages/click/decorators.py", line 17 in new_func
  File "/home/travis/build/21cmFAST/21cmFAST/.tox/py36/lib/python3.6/site-packages/click/core.py", line 555 in invoke
  File "/home/travis/build/21cmFAST/21cmFAST/.tox/py36/lib/python3.6/site-packages/click/core.py", line 956 in invoke
  File "/home/travis/build/21cmFAST/21cmFAST/.tox/py36/lib/python3.6/site-packages/click/core.py", line 1137 in invoke
  File "/home/travis/build/21cmFAST/21cmFAST/.tox/py36/lib/python3.6/site-packages/click/core.py", line 717 in main
  File "/home/travis/build/21cmFAST/21cmFAST/.tox/py36/lib/python3.6/site-packages/click/testing.py", line 326 in invoke
  File "/home/travis/build/21cmFAST/21cmFAST/tests/test_cli.py", line 116 in test_spin
  ...

关于python - tox+pytest 仅在 travis 上给出调用错误,代码为 -11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56599554/

相关文章:

python - 使用 "assert"从一个函数运行 python 中的所有测试文件,而不会在测试失败时退出 "for loop"

python - 以编程方式创建 pytest 固定装置

python - Cloudwatch 看起来很慢

Travis CI 上的 Haskell 失败,本地通过

python - 按已知子字符串拆分字符串

github - 如何在 Travis CI 中添加 SSH key ?

python - 为单个单元测试用例更改 celery 设置 task_always_eager

python - tox/pytest 测试通过/失败取决于主机环境中是否安装了另一个模块

python - 具有 Pandas 均值函数的 NaN 结果

python - Django 日志 : any tutorial to log to a file