使用 Jenkinsfile 运行 Django 测试(docker)
Runing Django tests with Jenkinsfile (with docker)
我在 Docker 中有一个 Django 应用程序 运行ning(Postgres、Nginx 和 Jenkins 也在 docker 中),
我想通过创建管道 运行 进行测试
问题是每次我 运行 它用 python app/manage.py 测试(因为 jenkisnfile 在项目之外名为“app”的文件夹),它只是 运行 一个空的 test.py 文件(所以它 return 0 测试成功)即使我有实际测试。
如果我 运行 直接从终端测试就可以了
$ docker-compose run web python manage.py test
Creating proj1_web_run ... done
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
..........
----------------------------------------------------------------------
Ran 10 tests in 0.229s
OK
Destroying test database for alias 'default'..
这里是 Jenkinsfile
pipeline {
agent {
docker { image 'python:3.9' }
}
stages {
stage('Build') {
steps {
sh 'pip install -r requirements.txt'
}
}
stage('Test') {
steps {
sh 'python app/manage.py test'
}
}
stage('Deploy') {
steps {
sh 'echo not yet...'
}
}
}
}
Jenkins 控制台输出中的消息
+ python app/manage.py test
System check identified no issues (0 silenced).
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
非常感谢您的帮助
这与詹金斯或 docker 无关。 Django 测试运行程序搜索当前目录(如果是 python 包,则搜索子目录)。您可以先cd app
,或者指定目录:
python app/manage.py test ./app
我在 Docker 中有一个 Django 应用程序 运行ning(Postgres、Nginx 和 Jenkins 也在 docker 中), 我想通过创建管道 运行 进行测试
问题是每次我 运行 它用 python app/manage.py 测试(因为 jenkisnfile 在项目之外名为“app”的文件夹),它只是 运行 一个空的 test.py 文件(所以它 return 0 测试成功)即使我有实际测试。
如果我 运行 直接从终端测试就可以了
$ docker-compose run web python manage.py test
Creating proj1_web_run ... done
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
..........
----------------------------------------------------------------------
Ran 10 tests in 0.229s
OK
Destroying test database for alias 'default'..
这里是 Jenkinsfile
pipeline {
agent {
docker { image 'python:3.9' }
}
stages {
stage('Build') {
steps {
sh 'pip install -r requirements.txt'
}
}
stage('Test') {
steps {
sh 'python app/manage.py test'
}
}
stage('Deploy') {
steps {
sh 'echo not yet...'
}
}
}
}
Jenkins 控制台输出中的消息
+ python app/manage.py test
System check identified no issues (0 silenced).
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
非常感谢您的帮助
这与詹金斯或 docker 无关。 Django 测试运行程序搜索当前目录(如果是 python 包,则搜索子目录)。您可以先cd app
,或者指定目录:
python app/manage.py test ./app