gpt4 book ai didi

django - 我如何在 Travis CI 上运行 redis?

转载 作者:IT王子 更新时间:2023-10-29 06:06:15 24 4
gpt4 key购买 nike

我正在使用 django 练习单元测试

在 items/tests.py 中

class NewBookSaleTest(SetUpLogInMixin):

def test_client_post_books(self):

send_post_data_post = self.client.post(
'/booksale/',
data = {
'title':'Book_A',
}
)

new_post = ItemPost.objects.first()
self.assertEqual(new_post.title, 'Book_A')

在 views/booksale.py 中

class BookSale(LoginRequiredMixin, View):

login_url = '/login/'

def get(self, request):
[...]

def post(self, request):

title = request.POST.get('title')

saler = request.user

created_bookpost = ItemPost.objects.create(
user=saler,
title=title,
)

# redis + celery task queue
auto_indexing = UpdateIndexTask()
auto_indexing.delay()

return redirect(
[...]
)

当我运行单元测试时,引发redis连接错误

 redis.exceptions.ConnectionError

我知道当我运行 redis-server 和 celery 时会解决错误

但是当我在 Travis CI 中运行单元测试时,我无法在 Travis CI 中运行 redis-server 和 celery

所以,我找到了这个 link

我尝试将此代码插入 .travis.yml

language:
python
python:
- 3.5.1
addons:
postgresql:"9.5.1"
install:
- pip install -r requirement/development.txt

service:
- redis-server

# # command to run tests
script:
- pep8
- python wef/manage.py makemigrations users items
- python wef/manage.py migrate
- python wef/manage.py collectstatic --settings=wef.settings.development --noinput
- python wef/manage.py test users items --settings=wef.settings.development

但它显示相同的错误

所以我找到下一个link

before_script:
- sudo redis-server /etc/redis/redis.conf --port 6379 --requirepass 'secret'

但是...它显示相同的错误...

我如何在 travis ci 中运行 redis-server?

最佳答案

如果您现在还没有解决问题,这里有一个解决方案。

删除服务行。

Redis是测试环境作为默认组件提供的,所以

service:
- redis-server

将被翻译为:

service redis start

本题我们想自定义redis添加密码auth。所以我们不需要travis ci来启动redis服务。只需使用 before_script

毕竟,您的 .travis.yml 应该是这样的:

language:
python
python:
- 3.5.1
addons:
postgresql:"9.5.1"
install:
- pip install -r requirement/development.txt
before_script:
- sudo redis-server /etc/redis/redis.conf --port 6379 --requirepass 'secret'
# # command to run tests
script:
- pep8
- python wef/manage.py makemigrations users items
- python wef/manage.py migrate
- python wef/manage.py collectstatic --settings=wef.settings.development --noinput
- python wef/manage.py test users items --settings=wef.settings.development

关于django - 我如何在 Travis CI 上运行 redis?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45995561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com