ValueError: 在中没有这样的测试方法:runTest

10 浏览
0 Comments

ValueError: 在中没有这样的测试方法:runTest

我有一个测试用例:

class LoginTestCase(unittest.TestCase):
    ...

我想在另一个测试用例中使用它:

class EditProfileTestCase(unittest.TestCase):
  def __init__(self):
    self.t = LoginTestCase()
    self.t.login()

这引发了一个错误:

ValueError: no such test method in 

我查看了引发异常的unittest代码,发现测试用例不应该以这种方式编写。是否有一种标准的编写测试用例的方式,以便之后的测试可以重用它?或者是否有一种解决方法?

我暂时通过给LoginTest添加一个空的runTest方法来解决这个问题。

0
0 Comments

在某些情况下,当运行Python的unittest模块中的测试用例时,可能会遇到如下错误信息:ValueError: no such test method in : runTest。这个错误的出现是因为在测试用例的类中找不到名为runTest的方法。

解决这个问题的方法是在测试用例的类中添加一个名为runTest的方法,该方法不做任何事情。可以直接在unittest模块的case.py文件中的TestCase类下添加这个方法,也可以在自定义的unittest.TestCase子类中直接添加这些代码。

具体的解决方法如下:

1. 打开python安装目录下的Lib\unittest\case.py文件。

2. 在TestCase类下添加如下代码:

def runTest(self):
    pass

通过添加这个方法,就可以避免出现上述错误。

同样的效果也可以通过直接在自定义的unittest.TestCase子类中添加以下代码来实现:

def runTest(self):
    pass

通过以上方法,就可以解决在运行unittest模块中的测试用例时出现的ValueError: no such test method in : runTest错误。

0
0 Comments

这是一个测试用例的问题,原因是在myapp.tests.SessionTestCase类中没有找到名为runTest的测试方法。解决方法是使用unittest.TestLoader().loadTestsFromTestCase方法加载测试用例,并使用unittest.TextTestRunner().run方法运行测试用例。下面是解决问题的具体代码:

suite = unittest.TestLoader().loadTestsFromTestCase(Test_MyTests)
unittest.TextTestRunner(verbosity=3).run(suite)

这段代码很方便,可以在shell中运行单元测试。感谢提供这个解决问题的方法。

0
0 Comments

问题出现的原因是在TestCase类中,虽然有一个名为"runTest"的默认方法名参数,但并没有默认实现的"runTest"方法。因此,当在TestCase的子类中没有定义名为"runTest"的方法时,就会出现"ValueError: no such test method in : runTest"的错误。

解决方法是在TestCase的子类中为每个测试方法提供一个以方法名为参数的TestCase子类实例,并将其添加到TestSuite中,然后使用TextTestRunner运行TestSuite。

以下是代码示例:

import unittest
class MyTest(unittest.TestCase):
    def test_001(self):
        print("ok")
if __name__ == "__main__":
    suite = unittest.TestSuite()
    for method in dir(MyTest):
        if method.startswith("test"):
            suite.addTest(MyTest(method))
    unittest.TextTestRunner().run(suite)

通过这种方式,可以确保TestCase的子类中的每个测试方法都被执行,从而解决了"ValueError: no such test method in : runTest"的问题。

0