我在Python中编写自动化的selenium测试脚本,由nose支持。我的目标是能够在我启动测试脚本时更改运行我的selenium测试的URL,以便我可以在同一台机器上运行相同的脚本,但针对不同的环境(测试,验收,也许甚至生产),而无需手动编辑脚本。
为了实现这个目标,我想为我的测试定义一个自定义命令行参数。我一直在寻找一种方法来做这一段时间,但我真正能找到的是人们说“你不应该在鼻子里做这个,因为你的测试不应该依赖命令行参数来传递”。
当它涉及单元测试时,这似乎是一个非常合理的观点,但在功能测试中,像我这样的案例我认为它更有意义。我的脚本是以一种允许在相同代码库的不同实例上重用的方式编写的,尽管我可能会发现自己在某些测试的某些部分,我不想在某些环境中执行。例如,在大多数环境中对网上商店执行订单是一个好主意,但在生产环境中,这可能不是一个好主意。
使用我目前选择的工具真的没办法(干净利落)吗?
答案 0 :(得分:0)
看看nose-testconfig。这允许您定义配置文件(各种格式 - INI样式,YAML等),甚至可以通过命令行调用直接传递内容。您可以在测试中导入模块,这样您就可以访问这些值。满容易。在我希望我的测试将一些生成的数据与必须传递给测试的某个地方进行比较之前,我必须自己做这个。所以肯定会出现正当理由。
也就是说,考虑一下你是否最好在你的代码库中创建一个可以反对命令的测试用户,不管它在哪里运行,总是很高兴看到你的所有测试都在运行。