一段时间以来,我的单元测试时间比预期的要长.我试图调试它几次没有太大的成功,因为延迟是在我的测试开始运行之前.这影响了我做任何远程接近测试驱动开发的能力(也许我的期望太高),所以我想看看我是否可以一劳永逸地解决这个问题.
运行测试时,测试开始和实际开始之间有70到80秒的延迟.例如,如果我为一个小模块运行测试(使用time python manage.py test myapp
),我会得到
<... bunch of unimportant print messages I print from my settings>
Creating test database for alias 'default'...
......
----------------------------------------------------------------
Ran 6 tests in 2.161s
OK
Destroying test database for alias 'default'...
real 1m21.612s
user 1m17.170s
sys 0m1.400s
Run Code Online (Sandbox Code Playgroud)
大约1m18的1m:21之间
Creating test database for alias 'default'...
Run Code Online (Sandbox Code Playgroud)
和
.......
Run Code Online (Sandbox Code Playgroud)
线.换句话说,测试需要不到3秒,但数据库初始化似乎需要1:18分钟
我有大约30个应用程序,大多数有1到3个数据库模型,所以这应该给出项目大小的概念.我使用SQLite进行单元测试,并实现了一些建议的改进.我无法发布我的整个设置文件,但很高兴添加所需的任何信息.
我确实使用跑步者
from django.test.runner import DiscoverRunner
from django.conf import settings
class ExcludeAppsTestSuiteRunner(DiscoverRunner):
"""Override the default django 'test' command, exclude from testing
apps which we know …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在AWS Elastic beanstalk上运行的Django应用程序上进行一些图像调整大小,所以我正在尝试安装Pillow来完成这项工作.
正如之前的一些帖子所述,我正在补充
packages:
yum:
libjpeg-devel: '6b'
Run Code Online (Sandbox Code Playgroud)
在我的.ebextension/myapp.config的顶部
我的requirements.txt包括:
Django==1.6.7
boto>=2.32.1
django-filter>=0.7
django-password-reset>=0.7
django-storages>=1.1.8
django-taggit==0.12
djangorestframework>=2.3.13
django-bootstrap3>=4.11.0
django-bootstrap3-datetimepicker>=2.2.3
python-dateutil>=2.2
pytz>=2014.2
six>=1.7.3
wsgiref==0.1.2
yolk==0.4.3
Pillow==2.5.3
googlemaps==1.0.2
MySQL-python>=1.2.5
Run Code Online (Sandbox Code Playgroud)
但当我eb start
或者git aws.push
,我在弹性beanstalk日志中得到以下错误:
2014-09-15 07:10:23,596 [INFO] Running configSet Infra-EmbeddedPreBuild
2014-09-15 07:10:23,598 [INFO] Running config prebuild_0_ampervue
2014-09-15 07:10:32,556 [ERROR] libjpeg-devel-6b is not available to be installed
2014-09-15 07:10:32,557 [ERROR] Error encountered during build of prebuild_0_ampervue: Yum does not have libjpeg-devel-6b available for installation
Traceback (most recent …
Run Code Online (Sandbox Code Playgroud) django libjpeg amazon-web-services pillow amazon-elastic-beanstalk
我正在使用 boto3 的 s3.transfer 从 s3 下载几个 4GB 以上的文件。除了一个之外,所有其他人都能够下载,但是失败的那个出现以下错误:
ERROR: An error occurred (ExpiredToken) when calling the GetObject operation: The provided token has expired.
Run Code Online (Sandbox Code Playgroud)
我使用它的方式与http://boto3.readthedocs.org/en/latest/_modules/boto3/s3/transfer.html上的文档相同
s3_client = session.client('s3')
transfer = S3Transfer(s3_client)
# Download s3://bucket/key to /tmp/myfile
transfer.download_file('bucket', 'key', '/tmp/myfile')
Run Code Online (Sandbox Code Playgroud)
有没有办法增加 boto3 中使用的签名 url 的过期时间?
如果相关的话,我正在使用 Cognito 来获取凭据,并使用它们进行会话
client = boto3.client('cognito-identity', AWS_REGION)
# credentials[] contains the IdentityId and Token I get from my server
# which I get using client.get_open_id_token_for_developer_identity
# with TokenDuration=86400
resp = client.get_credentials_for_identity(IdentityId=credentials['IdentityId'],
Logins={'cognito-identity.amazonaws.com': credentials['Token']})
# The …
Run Code Online (Sandbox Code Playgroud) 假设我使用以下命令创建一个新的Azure docker机器:
docker-machine create -d azure \
--azure-subscription-id="$AZURE_SUBSCRIPTION_ID" \
--azure-size=Standard_D14_v2 \
--azure-subscription-cert="${PWD}/certs/mycert.pem" \
--azure-location="East US" \
my-azure-node
Run Code Online (Sandbox Code Playgroud)
在此之后,我可以在运行时看到my-azure-node docker-machine ls
,ssh到它,并运行我想要的任何docker命令.
但现在我希望同事能够在同一台运行的机器上运行.所以,一旦我mycert.pem
转到她(愚蠢的问题,但我甚至可以与她分享这个文件?).她如何初始化docker-machine,这样她在做的时候会看到同一台机器docker-machine ls
,而不是试图创建一个新机器.
我基本上想拥有一台我们共享的docker机器,并且使用docker-machine的简单性来实现这一点.