假设我们有这样的东西:
import py, pytest
ERROR1 = ' --- Error : value < 5! ---'
ERROR2 = ' --- Error : value > 10! ---'
class MyError(Exception):
def __init__(self, m):
self.m = m
def __str__(self):
return self.m
def foo(i):
if i < 5:
raise MyError(ERROR1)
elif i > 10:
raise MyError(ERROR2)
return i
# ---------------------- TESTS -------------------------
def test_foo1():
with pytest.raises(MyError) as e:
foo(3)
assert ERROR1 in str(e)
def test_foo2():
with pytest.raises(MyError) as e:
foo(11)
assert ERROR2 in str(e)
def test_foo3():
....
foo(7)
....
问:如何使test_foo3()进行测试,但不会引发MyError?很明显,我可以测试一下:
def test_foo3():
assert foo(7) == 7
但我想通过pytest.raises()进行测试。有可能吗?例如:在某种情况下,该函数“ foo”根本没有返回值,
def foo(i):
if i < 5:
raise MyError(ERROR1)
elif i > 10:
raise MyError(ERROR2)
恕我直言,以这种方式进行测试可能很有意义。
如果测试引发任何意外的异常,则测试将失败。您只需调用foo(7),就可以测试没有引发MyError了。因此,只需满足以下条件:
def test_foo3():
foo(7)
如果要明确并为此编写断言语句,则可以执行以下操作:
def test_foo3():
try:
foo(7)
except MyError:
pytest.fail("Unexpected MyError ..")
嗨,如何检查聚合查询中使用的索引和扫描对象的数量,类似于db.collection.find().explain()?
问题内容: 我正在使用SQL Server,但没有足够的数据集来测试查询的性能。 我想分析查询,看看索引是否被利用。我该如何检查 问题答案: 在SQL Management Studio中,只需键入查询,然后按Control-L(显示查询执行计划)。在那里,您将能够查看是否正在使用任何索引。“表扫描”表示未使用索引。“索引扫描”是指使用索引。
例如:当我通过->不要:它工作正常 但是当我通过->don''t:它不正常工作时,最终输出变成了don'''t 我只想把单引号转换成双引号。我怎么能这么做?
问题内容: 检查表是否存在于MySQL中(最好通过PHP中的PDO)而不抛出异常的最佳方法是什么。我不喜欢解析“ SHOW TABLES LIKE”等的结果。必须有某种布尔查询吗? 问题答案: 我不知道它的PDO语法,但这看起来很简单:
如何使pytest打印回溯,所以我将看到在任何函数中的哪里引发了异常?
问题内容: 我在chrome开发人员控制台中编写了一些随机代码。令我惊讶的是,chrome让我用它作为变量名,因为保留关键字完全不对。我需要了解为什么会这样。 场景: 此缺陷存在于中。但是,当我在Babel REPL中 尝试时,会抛出错误。 我认为这与Google v8有关 问题答案: Mohsen Azimi的这篇文章可以很好地说明其背后的原因。这是它的快速摘要。 以下关键字在JavaScrip