2

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

a = [1,2,3]
b = np.array([1,2])

文件名: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
4

1 回答 1

5

不要使用 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)")
于 2015-03-10T20:02:17.117 回答