我有一个脚本,它充当一些使用Pythonunittest
模块编写的单元测试的包装器。除了清理一些文件、创建输出流和生成一些代码之外,它还使用
unittest.TestLoader().loadTestsFromTestCase()
我已经在使用optparse
来提取几个用于确定输出位置、是否重新生成代码以及是否进行清理的命令行参数。我还想传递一个配置变量,即端点URI,以便在测试用例中使用。
我意识到我可以在TestCase的setUp方法中添加一个OptionParser
,但是我想把这个选项传递给setUp
。是否可以使用loadTestsFromTestCase()
?我可以遍历返回的TestSuite
的TestCases
,但是我可以手动调用TestCases
上的setUp吗?
**编辑**
我想指出的是,如果我遍历测试并手动调用setUp
,我可以将参数传递给setUp
:
(options, args) = op.parse_args()
suite = unittest.TestLoader().loadTestsFromTestCase(MyTests.TestSOAPFunctions)
for test in suite:
test.setUp(options.soap_uri)
但是,我使用xmlrunner
来实现这个,它的run方法使用TestSuite
作为参数。我假设它将运行setUp方法本身,因此我需要XMLTestRunner
中可用的参数。
我希望这有道理。
我绝对建议不要像这样将参数传递给setUp;setUp在运行测试时应该被隐式调用,所以不应该像这样显式调用它。
解决这个问题的一种方法是将需要设置的值设置为环境变量或全局可访问的“context”模块中的值,这将允许测试用例根据需要访问它们。我喜欢使用环境变量,因为它在运行测试方面更加灵活(这样就不再依赖命令行参数)。
好吧,我也想做同样的事,我自己也要问这个问题。我想改进下面的代码,因为它有重复。但它确实允许我向测试用例发送参数:
相关问题 更多 >
编程相关推荐