Python 用于验证数组长度相等的Unittest.TestCase方法

Python 用于验证数组长度相等的Unittest.TestCase方法,python,class,instantiation,testcase,django-unittest,Python,Class,Instantiation,Testcase,Django Unittest,如何将python命令行声明的变量传递给testcase实例? 编辑:a和b是方法func()的输入 文件名:code.py import unittest import numpy as np def func(a,b) c = a*b return (c) class TestCases(unittest.TestCase): def test_length_a_equals_length_b(self): self.assertEqual(len

如何将python命令行声明的变量传递给testcase实例? 编辑:a和b是方法func()的输入

文件名:code.py

import unittest
import numpy as np

def func(a,b)
    c = a*b
    return (c)

class TestCases(unittest.TestCase):
    def test_length_a_equals_length_b(self):
        self.assertEqual(len(a), len(b), msg="len(a) != len(b)")
如何将a和b输入到测试用例中,以便在它们的长度不相同时发生错误

从终端运行文件时,出现以下错误:

ERROR: test_a_len_equals_len_b (main.TestCases)  
---------------------------------------------------------------------- 
Traceback (most recent call last): 
 File "code.py", in test_length_a_equals_length_b 
   self.assertEqual(len(a), len(b), msg="len(a) != len(b)") 
NameError: global name 'a' is not defined

不要使用assertNotEqual,而是使用assertEqual。当a和b的长度不相同时,此操作将失败

编辑以回答评论:
“a”和“b”的定义在哪里?您可以在模块作用域中定义它们(仅在code.py文件的开头),也可以在测试方法中定义它们,如下所示:

def test_length_a_equals_length_b(self):
    a = [1,2,3]
    b = np.array([1,2])
    self.assertEqual(len(a), len(b), msg="len(a) != len(b)")

不清楚你的问题是什么。您发布的代码看起来不错。我已经编辑了代码,所以a和b是方法func()的输入。谢谢,您是正确的,但我的问题是:错误:test_a_len_equals_len_b(main.TestCases)---------------------------------------------------------------------------------------------------------------Traceback(最近一次调用):File“code.py”,在测试中\u length\u a\u equals\u length\u b self.assertNotEqual(len(a),len(b),msg=“len(a)!=len(b)”)name错误:未定义全局名称“a”,在哪里定义了“a”和“b”?你可以在你的模块范围内定义它们(就在code.py文件的开头),也可以在你的测试方法中定义它们,比如:def test_length_a_等于长度_b(self):a=[1,2,3]b=np.array([1,2])self assertEqual(len(a),len(b),msg=“len(a)!=len(b)”,我希望将这个文件用作一个模块,因此,a和b变量将在外部定义。这是否超出了测试用例的范围?所有的测试用例都应该包含它们的输入变量吗?不,在测试用例上创建的变量只是一个例子。在外部定义变量时,必须首先导入它们。类似于:从myprogram.mymodule导入a,bI希望:将code.py导入到另一个文件中,并在func(a,b)具有不同长度的数组时使用测试用例出错。但是,这可能不在测试用例的范围内。
def test_length_a_equals_length_b(self):
    a = [1,2,3]
    b = np.array([1,2])
    self.assertEqual(len(a), len(b), msg="len(a) != len(b)")