'python -m unittest discover' 在本地工作但无法发现 CircleCi 上的测试

'python -m unittest discover' works locally but unable to discover tests on CircleCi

我正在尝试将单元测试添加到我在 CircleCi 上的项目中。在本地,当我从终端 运行 'python -m unittest discover' 时,它能够找到并 运行 所有 16 个测试。但是在 CircleCi 上,它说:

Ran 0 tests in 0.000s

知道会发生什么吗?? 是否缺少某些配置或环境变量??

我的项目结构:

project
├── src
│   ├── main
│       ├── python
│           ├── testing
│               ├──Test1.py
|               ├──Test2.py

config.yml

version: 2
docker:
  - image: circleci/python:3.7.5
jobs:
  build:
    steps:
      - checkout
      - restore_cache:
          key: deps1-{{ .Branch }}-{{ checksum "requirements.txt" }}
      - run:
          name: Install Python deps in a venv
          command: |
            python3 -m venv venv
            . venv/bin/activate
            pip install -r requirements/dev.txt
      - save_cache:
          key: deps1-{{ .Branch }}-{{ checksum "requirements.txt" }}
          paths:
          - "venv"
      - run:
          name: Running tests
          command: |
            cd ~/project/src/main/python/testing/
            python3 -m unittest discover

尝试为该特定步骤设置 working_directory,而不是使用 cd,例如

- run:
    name: Running tests
    working_directory: ~/project/src/main/python/testing/
    command: |
        python3 -m unittest discover

我终于解决了这个问题。 我的测试 类 以大写字母 'T' 开头,单元测试默认查找 test*.py。所以我不得不添加额外的配置,如下所示:

python -m unittest discover -p "Test*.py"

它能够在本地发现测试,因为 Windows 命令行不区分大小写。 但是 CircleCi 启动的 Linux 命令行区分大小写,这就是为什么测试没有被发现的原因。