Python Nose需要2个参数
我做了鼻子测试:Python Nose需要2个参数,python,nose,Python,Nose,我做了鼻子测试: import nose from nose.tools import istest, nottest nose.run() path1 = "/some/my/path1/" path2 = "/some/my/path2/" @istest def compare_dir(path1, path2): my_bool = mytest, bool yield my_test, my_bool sub_path1 = path1 + "some_pa
import nose
from nose.tools import istest, nottest
nose.run()
path1 = "/some/my/path1/"
path2 = "/some/my/path2/"
@istest
def compare_dir(path1, path2):
my_bool = mytest, bool
yield my_test, my_bool
sub_path1 = path1 + "some_path"
sub_path2 = path2 + "some_path"
compare_dir(sub_path1, sub_path2)
def my_test(is_equal):
assert is_equal, "Not equal!"
我有一个错误:
Traceback (most recent call last):
File "/Python27/lib/site-packages/nose/case.py", line 197, in runTest
self.test(*self.arg)
TypeError: compare_dir() takes exactly 2 arguments (0 given)
我做错了什么?我已经为compare\u dir
给出了两个参数。
我已经开始考试了
/path/to/my/test/my_test_name.py --tests=my_test_name
据我所知,这是因为您假设您的函数默认采用全局变量path1和path2,而在函数初始化级别,除非您显式定义它们,否则不会得到隐含值 你可以试着换衣服
def compare_dir(path1, path2):
到
这样,如果默认情况下未传递任何内容,则应采用全局值。非常感谢<代码>def比较目录(path1=path1,path2=path2):这一个确实有效!但是为什么它不从4行和5行中取值呢?因为当你把这样的值放在一个函数中时,你说这就是你想要调用的函数中传递给它的任何东西。因此,它假设它们是仅在该函数中使用的全新变量。您可以在代码中使用
compare\u dir(path1,path2)
调用它,但默认情况下,函数开头定义的所有变量都是空的,需要填写。
def compare_dir(path1=path1, path2=path2):