鼻子需要 2 个参数

Nose required 2 arguments

我创建了鼻子测试:

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_dir 给出了 2 个参数。 我已经开始测试

/path/to/my/test/my_test_name.py --tests=my_test_name

据我所知,这是因为您假设您的函数默认采用全局变量 path1 和 path2,但事实并非如此,在函数启动级别,您不会获得隐含值,除非您明确定义它们。

您可以尝试更改

def compare_dir(path1, path2):

def compare_dir(path1=path1, path2=path2):

这样,如果默认情况下没有传递任何内容,它应该采用全局值。