我想完全自定义测试结果输出。在unittest我可以实现通过举例的我自己的测试运行unittest.TextTestRunner。我该怎么做pytest?
使用案例:
CI服务器轮询一些VSC存储库并为每个修订运行测试套件.如果提交了两个或多个修订版,即使在相对较小的时间间隔内,我希望CI服务器将每个修订版放入队列中,为每个版本运行测试,存储结果,并且永远不再为这些提交运行测试.我不希望CI服务器并行启动作业,以避免在许多同时作业的情况下出现性能问题和崩溃.
哪个CI服务器能够处理这个?
我的另外一个不那么重要的要求是我使用Python并且希望使用用Python编写的软件,因此我查看了Buildbot项目,我特别想看看这个工具的评论是否可以在一般情况下使用它是否能够取代Travis或Jenkins等大多数流行解决方案.
SUBJ.
现在(Factory Boy ver.2.4.1.)使用以下代码:
class ImageFactory(factory.django.DjangoModelFactory):
class Meta:
model = Image
image = factory.django.ImageField(width=1024, height=768)
Run Code Online (Sandbox Code Playgroud)
image将None在节省时间,因此如果Image模型已save被覆盖并且其运行时image,它将失败.这就是我的情况.
那么 - 如何在save调用之前生成图像?
在Docker注册表和Git(例如)修订中关联Docker镜像版本的常见常规模式是什么?因此,存储库的用户将能够切换任何修订版本并重新创建与该特定修订版本对应的环境.
例如,我有一个包含项目和集成服务器的存储库,它可以为存储库中的每个提交自动构建Docker镜像.这些图像如何与相应的存储库提交相关联?
使用Docker你有两个不同的存储库 - 一个项目和一个Docker图像 - 所以它们必须同步,但推荐的工作流程是什么?
首先,我的意思是'正确定义'?
例如,"C编程语言"第2版中的 K&R .,在2.2数据类型和大小中,对整数做出非常明确的陈述:
- 还有
short,int与long用于整数类型.他们需要重复不同边界的价值观.int是特定硬件的"自然"大小的数字,因此也可能是最快的.- 尺寸为整数类型
short,int而long纯粹是实现相关的.- 但他们有限制.
short并且int应至少保留16位.long应至少保留32位.short> =int> =long.
这是非常明确和明确的.size_t类型不是这种情况.在K&R 5.4地址算术中,他们说:
- ...
size_t是sizeof运算符返回的无符号整数类型.- 的
sizeof操作者产生存储其操作数的类型的对象所需要的字节数.
在C99标准草案中,在6.5.3.4尺寸操作员中,他们说:
- 结果的值是实现定义的,其类型(无符号整数类型)
size_t在<stddef.h>(和其他头文件)中定义.
在7.17通用定义中:
size_t这是sizeof运算符的结果的无符号整数类型;
在7.18.3其他整数类型的限制中:
- size_t
SIZE_MAX65535的限制
还有一篇有用的文章 - 为什么size_t很重要.它说如下:
- 好吧,让我们试着想象一下,如果没有,会是什么样的
size_t.- 例如,让我们从中获取 …
# ANDing Q objects
q_object = Q()
q_object.add(Q(), Q.AND)
# ORing Q objects
q_object = Q()
q_object.add(Q(), Q.OR)
Run Code Online (Sandbox Code Playgroud)
>>> import operator
# create a list of Q objects
>>> mylist = [Q(question__contains='dinner'), Q(question__contains='meal')]
# OR
>>> Poll.objects.filter(reduce(operator.or_, mylist))
[<Poll: what shall I make for dinner>, <Poll: what is your favourite meal?>]
# AND
>>> Poll.objects.filter(reduce(operator.and_, mylist))
[]
Run Code Online (Sandbox Code Playgroud)
这种技术可能非常有用,例如,对于使用条件过滤器的页面构建查询,就像在eBay上一样.
但是,据我所知,这些事情没有记录,所以这个问题的最佳实践是什么,不会从支持中删除,也不会混淆那些会阅读我代码的人?
ps
而且 - 对Q()对象使用"&"运算符是否很好?在Django-docs中,我一无所获!
刚刚从LESS切换,发现在SASS全局变量中.因此,要为特定块定义特殊变量,我需要编写类似的东西$words-that-describe-particular-block-padding: 10px;.
在所有评论中,作者都认为SASS比LESS更先进,因为它的功能丰富,但实际上缺少像命名空间这样简单的东西会杀死它的所有经验.
为什么做出设计决定?
我错了,全球唯一的变量因为我失踪而更好吗?
upd:
SASS:
$var: 1px;
#id1 {
$var: 2px;
width: $var;
}
#id2 {
width: $var;
}
Run Code Online (Sandbox Code Playgroud)
减:
@var: 1px;
#id1 {
@var: 2px;
width: @var;
}
#id2 {
width: @var;
}
Run Code Online (Sandbox Code Playgroud)
试试这个在线编译器的例子:
最近我读过这篇文章:http:
//blog.roseman.org.uk/2010/02/01/middleware-post-processing-django-gotcha/
我不明白,为什么那里描述的解决方案有效?
为什么实例化单独的对象使数据块线程安全?
我有两个猜测:
- Django明确地将中间件对象保存在共享内存中,而不是为其他对象执行此操作,因此其他对象是线程安全的.
- 在第二个例子中,在文章中,线程安全关键数据的生命周期远少于第一个示例,因此,线程不安全操作可能没有时间发生.
我的问题是 - 如何猜测Django线程安全的时间和不在哪里?它或公约中有任何逻辑吗?另一个问题 - 我知道请求对象是线程安全的 - 很明显,它不安全,使用Django构建的网站无法运行,但究竟是什么让它具有线程安全性呢?
我有这样的简单模型:
class Something(models.Model):
data = models.CharField(max_length=200)
Run Code Online (Sandbox Code Playgroud)
当我表演时:
Something.objects.all().query
Run Code Online (Sandbox Code Playgroud)
我明白了:
<django.db.models.sql.query.Query object at 0xa57b9ec>
Run Code Online (Sandbox Code Playgroud)
这是什么意思?我使用的是最新版本的Django(1.5.2).在旧版本中.query,返回了带有SQL查询的字符串.我怎样才能在新版本中获得它?
python ×5
django ×4
buildbot ×1
c ×1
c11 ×1
c99 ×1
coding-style ×1
css ×1
deployment ×1
django-q ×1
docker ×1
factory-boy ×1
filter ×1
javascript ×1
jenkins ×1
jslint ×1
less ×1
oop ×1
private ×1
pytest ×1
sass ×1
size-t ×1
styles ×1
teamcity ×1
testing ×1
travis-ci ×1
unit-testing ×1
webserver ×1