tip*_*ipu 4 python unit-testing
我正在迭代一个文本文件.
文件文本文件中的每一行都是测试的名称.
我试图实例化测试类,但我不断收到此错误:
ValueError: no such test method in <class 'login_to_blog'>: runTest
Run Code Online (Sandbox Code Playgroud)
我正在做的代码在这里:
test_name = line.replace("\n", "") #name of test file, class, and method _must_ be shared.
module = __import__(test_name)
test_class = getattr(module, test_name)
suite.addTest(test_class())
Run Code Online (Sandbox Code Playgroud)
这是login_to_blog:
from selenium import selenium
import unittest, time, re
class login_to_blog(unittest.TestCase):
def setUp(self):
self.verificationErrors = []
self.selenium = selenium("localhost", 4444, "*chrome", "http://blog/")
self.selenium.start()
def test_login_to_blog(self):
sel = self.selenium
sel.open("/")
sel.type("signin_username", "jim")
sel.type("signin_password", "jones")
sel.click("//input[@value='Signin']")
sel.wait_for_page_to_load("30000")
try: self.failUnless(sel.is_text_present("your blog posts"))
except AssertionError, e: self.verificationErrors.append(str(e))
def tearDown(self):
self.selenium.stop()
self.assertEqual([], self.verificationErrors)
if __name__ == "__main__":
unittest.main()
Run Code Online (Sandbox Code Playgroud)
重要的是要注意这些测试由他们自己通过命令行成功运行.
任何想法我如何实例化它们并从python代码中手动运行它们?
查看PyUnit Suite文档,它说:
创建实例时,我们必须指定要运行的测试方法.我们通过在构造函数中传递方法名称来完成此操作:
defaultSizeTestCase = WidgetTestCase("testDefaultSize")
resizeTestCase = WidgetTestCase("testResize")
Run Code Online (Sandbox Code Playgroud)
再往下,我觉得你要找的东西是:
由于创建具有许多类似命名的测试函数的TestCase子类是一种常见模式,因此在unittest模块中提供了一个名为makeSuite的便捷函数,它构造了一个包含测试用例类中所有测试用例的测试套件: -
suite = unittest.makeSuite(WidgetTestCase,'test')
Run Code Online (Sandbox Code Playgroud)
所以你要:
suite = unittest.makeSuite(test_class, 'test')
result = unittest.TestResult()
suite.run(result)
Run Code Online (Sandbox Code Playgroud)
或类似的东西.
| 归档时间: |
|
| 查看次数: |
2229 次 |
| 最近记录: |