Gaa*_*ara 2 python nose python-2.7 python-unittest
我是新来的unittest
。我试图根据列表中的值跳过测试用例。
class UESpecTest(unittest.TestCase):
global testcases_exec_list
testcases = []
testcases = testcases_exec_list
@unittest.skipIf('0' not in self.testcases, "Testcase input not given")
def test_retrieve_spec_info(self):
read_spec_info.open_csv(self.spec_info)
assert (bool(self.spec_info) == True) #Raise assertion if dictionary is empty
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
File "test_ue_cap_main.py", line 39, in UESpecTest
@unittest.skipIf('0' not in self.testcases, "Testcase input not given")
NameError: name 'self' is not defined
Run Code Online (Sandbox Code Playgroud)
我不确定为什么 self 在这里未定义。
self
不像this
Java 和 Javascript 中那样是一个神奇的变量。这就是为什么您必须将其定义为方法中的第一个参数。如果self
未定义为参数或其他类型的变量,则它只是未定义,就像任何其他变量一样。它的名字纯粹是约定俗成的。
(尽管 ifself
等同于this
它仍然没有意义,因为没有相关的实例,只有类)
当您处于类级别时,您可以正常使用类级别的其他变量。例如:
class A:
x = 1
y = 2
z = x + y # 3
Run Code Online (Sandbox Code Playgroud)
所以你可以删除self
并只说'0' not in testcases
.
另外,你还发生了一些奇怪的事情:
global testcases_exec_list
testcases = []
testcases = testcases_exec_list
Run Code Online (Sandbox Code Playgroud)
testcases = []
完全是多余的,因为您立即覆盖它。global testcases_exec_list
可能是无用的(取决于类定义的其余部分),因为global
它用于分配,而不是访问。testcases
还要定义testcases_exec_list
?您是否明白这使它们成为相同的列表,而不是复制? 归档时间: |
|
查看次数: |
1740 次 |
最近记录: |