我有代码,当我在本地使用 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/