如何修复Python构建错误“ValueError: <class '__main__' 中不存在此测试方法。”

2 投票
1 回答
1481 浏览
提问于 2025-04-17 17:17

我的Python脚本如下:

==========================================

class ExampleTestCase(unittest.TestCase):
    capabilities = None

def setUp(self):
    self.driver = webdriver.Remote(desired_capabilities={ "browserName": broswer,      "platform": platform, "node": node })

def test_example(self):
    self.driver.get("www.360logica.com")
    self.assertEqual(self.driver.title, "360logica")

def tearDown(self):
    self.driver.quit()

if __name__ == "__main__":
    #unittest.main()
    args = sys.argv
    port = args[1]
    platform = args[2]
    broswer = args[3]
    suite = unittest.TestSuite()
    suite.addTest(ExampleTestCase("test_example"))
    runner = XMLTestRunner(file('results_ExampleTestCase_%s.xml' % (broswer), "w"))
    runner.run(suite)

==============================================

运行命令是:

$ ./python.exe Grid_1.py 5555 WINDOW firefox

==============================================

构建错误日志是:

$ ./python.exe Grid_1.py 5555 WINDOW firefox
Traceback (most recent call last):
      File "Grid_1.py", line 31, in <module>
        suite.addTest(ExampleTestCase("test_example"))
      File "C:\Python27\Lib\unittest\case.py", line 191, in __init__
        (self.__class__, methodName))
ValueError: no such test method in <class '__main__.ExampleTestCase'>: test_example

===================================================

请帮帮我。我对这个构建错误感到很头疼,不知道该怎么解决。

1 个回答

0

你有一行代码是 suite.addTest(ExampleTestCase("test_example")),但是你的 def 可能写在了类的外面(如果你的缩进确实是这样的话)。要确保 test_example 是这个类的一部分。

class ExampleTestCase(unittest.TestCase):
    capabilities = None

    def setUp(self):
        self.driver = webdriver.Remote(desired_capabilities={ "browserName": broswer, "platform": platform})

    def test_example(self):
        self.driver.get("www.360logica.com")
        self.assertEqual(self.driver.title, "360logica")

    def tearDown(self):
        self.driver.quit()

if __name__ == "__main__":
    #unittest.main()
    args = sys.argv
    port = args[1]
    platform = args[2]
    broswer = args[3]
    suite = unittest.TestSuite()
    suite.addTest(ExampleTestCase("test_example"))
    runner = XMLTestRunner(file('results_ExampleTestCase_%s.xml' % (broswer), "w"))
    runner.run(suite)

运行命令 python substring.py 5555 WINDOW firefox,最后会把结果输出到一个文件里,文件名是 results_ExampleTestCase_firefox.xml,这个是正常的。

撰写回答