我正在尝试在我的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
答案 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命令行区分大小写,这就是为什么未发现测试的原因。