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

时间:2019-12-30 10:50:14

标签: python-3.x python-unittest circleci-2.0

我正在尝试在我的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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

我终于解决了。 我的测试课程以大写的“ T”开头,默认情况下,单元测试查找ExecuteAsync。所以我必须添加其他配置,如下所示:

test*.py

由于Windows命令行不区分大小写,因此可以在本地发现测试。 但是CircleCi启动的Linux命令行区分大小写,这就是为什么未发现测试的原因。