|
|
1
6
您得到的第一条错误消息是有意义的,并且解释了很多。
未绑定的
. 这意味着除非将其绑定到实例,否则无法调用它。事实上,对于
也许现在你不明白为什么打不到电话
可能不是,对吧?写这个没有意义,也不会起作用,因为
让我们来看看为什么:
如果你试图把
但您不希望它超出类范围,因为您要调用
你可能认为从那以后
但是,如果在Python类中定义一个方法,那么Python将期望该方法具有
这样,python不会将mytestcase视为实例方法,而是将其视为函数:
当然现在你可以打电话
|
|
|
2
1
这个
documentation
正在说
调用函数时遇到的问题都与它是类中的一个方法有关,但不是作为一个方法编写的。这个
|
|
|
3
1
需要注意的一点是, nose 是一个真正简化运行测试的工具。它允许您精确地指定从命令行运行的测试,以及遍历每个目录并运行每个测试。 |
|
|
4
1
正如前面提到的,文档将suite()作为模块中的一个方法来引用,而unittest(奇怪的是)似乎对这个方法没有任何特殊的识别,因此您必须显式地调用它。但是,如果使用一个名为“的工具, testoob “,它会自动调用suite()方法(如果您在其main()中指定了defaulttest=”suite“参数),并在基本UnitTest包的顶部添加了其他几个功能。它还提供了用于生成XML文件的选项,其中包括从这些测试中收集到的stdout和stderr(对于自动化测试来说,这是一大优势),还可以生成HTML报告(尽管您需要安装其他包)。我找不到一种方法来自动发现鼻子声称支持的所有测试,所以鼻子可能是更好的选择。 |
|
|
5
0
我建议使用以下内容。这样可以避免在进行过程中手动输入所有添加的测试。
通过定义以下内容,您可以灵活地在同一模块中执行测试:
如果您想将您的套件捆绑在另一个模块中,即test_suite.py(例如),那么可以通过以下方式完成: 导入测试\模块名称 进口统一测试
现在如何运行测试。我通常使用更简单的方法在包级别执行此命令来运行,UnitTest自动发现测试:
或
Caveat: UnitTest比NoseTest快X倍,因此它取决于开发人员的偏好,特别是如果他们使用了第三方的NoseTest插件并希望继续使用它。 |