在 Travis CI 中构建 Python 项目失败,消息不明确

Posted

技术标签:

【中文标题】在 Travis CI 中构建 Python 项目失败,消息不明确【英文标题】:Failed build of Python project in Travis CI with unclear message 【发布时间】:2021-02-15 16:13:21 【问题描述】:

我正在通过一个小型个人项目“通过实践”学习 Python(和一些库)。

我一直在使用 Minimal Product Viable 方法,然后我忽略了一些关于文件和目录组织的最佳实践。

此外,我利用这个机会学习了 pytest(我曾经使用 unittest 库进行测试)和Travis 的持续集成。

我创建了一个特定的branch 来测试和整合我在 travis 文件中的配置,但经过一些测试后我被阻止了。

有了这个配置

language: python
#python version
python: 3.8.6 
#define dependencsy
install:
  - pip install -r requirements.txt
# put testing framework
script: pytest
# allowed only these branch
branches:
  only:
  - master
  - develop
  - join-travis

我收到了这个error:

测试/test_NumberDays.py:61:


tests/numberdays.py:20:在 init

self.log = PersonalLogging() 测试/personalLogging.py:11:在 init

logging.config.fileConfig("config-log.ini", disable_existing_loggers=False)

/opt/python/3.8.6/lib/python3.8/logging/config.py:71:在文件配置中

格式化程序 = _create_formatters(cp) /opt/python/3.8.6/lib/python3.8/logging/config.py:104:在

_create_formatters

flist = cp["formatters"]["keys"]


self = , key = '格式化程序'

def getitem(self, key):

如果 key != self.default_section 而不是 self.has_section(key):

raise KeyError(key) E KeyError: 'formatters'

/opt/python/3.8.6/lib/python3.8/configparser.py:960: KeyError

_______________________ 设置 testRunningOK 时出错 _______________

@pytest.fixture

def temporalRange () :

我认为KeyError: 'formatters'的问题是:

logging.config.fileConfig("config-log.ini", disable_existing_loggers=False)

我创建了一个个人日志类(PersonalLogging),它封装了标准的logging类,ini配置文件在同一个目录下其他课程(我知道,这太可怕了,以后我会更正项目的结构:伙计们,不要以我为榜样,否则你的团队领导会在工作中解雇你^__^)。

现在我有两个问题:

    如果我的假设是正确的,我该如何修复它并成功构建? 如果我的假设不正确,那么 (1) 正确的解释和 (2) 解决方案是什么?

提前致谢

【问题讨论】:

【参考方案1】:

问题解决了。

出于我不记得的相同原因,我更改了文件名并在没有使用 pytest 测试项目的情况下推送。

然后,Travis 没有找到日志记录的配置文件。

在本地,运行项目后,我遇到了同样的错误(KeyError in formatters):问题是文件不可读

【讨论】:

以上是关于在 Travis CI 中构建 Python 项目失败,消息不明确的主要内容,如果未能解决你的问题,请参考以下文章

travis.ci 上的 Android 构建变体

无法在 Travis CI/Android SDK v20 上使用支持库构建

Swift 测试在本地通过,但在 Travis-CI 上构建失败

如何在 Travis CI 中为 C++ 项目并行运行多个构建,每个构建都有单独的脚本?

Python scikit-image 拉取请求 Travis CI Python 2.7 构建失败

在travis-ci中手动触发安全列表之外(或阻止列表内)的分支的构建