【问题标题】:How do I define a custom command line argument that I can pass to my selenium test script that I run with nose?如何定义可以传递给我用鼻子运行的硒测试脚本的自定义命令行参数?
【发布时间】:2015-02-10 10:32:59
【问题描述】:

我正在用 Python 编写自动化的 selenium 测试脚本,由鼻子支持。我的目标是能够在我启动测试脚本时更改我的 selenium 测试运行所针对的 URL,以便我可以在同一台机器上运行相同的脚本,但针对不同的环境(测试、验收,也许甚至生产),而无需手动编辑脚本。

为了实现这个目标,我想为我的测试定义一个自定义命令行参数。我一直在寻找一种方法来做到这一点,但我真正能找到的只是人们说“你不应该在鼻子里这样做,因为你的测试不应该依赖命令行参数来传递”。

当涉及到单元测试时,这似乎是一个非常合理的观点,但在功能测试中,像我这样的案例我认为它更有意义。我的脚本是有意编写的,允许它在同一代码库的不同实例上重用,尽管我可能会发现自己有一些我不想在某些环境中执行的测试的某些部分。例如,在大多数环境中在网上商店执行订单是一个好主意,但在生产环境中可能不是一个好主意。

用我目前选择的工具真的没有办法(干净地)做到这一点吗?

【问题讨论】:

    标签: python selenium selenium-webdriver nose nosetests


    【解决方案1】:

    看看nose-testconfig。这允许您定义配置文件(各种格式 - INI 样式、YAML 等),甚至直接通过测试的命令行调用来传递内容。您在测试中导入模块,这使您可以访问这些值。相当容易。在我希望我的测试将一些生成的数据与必须传递给测试的某个地方进行比较之前,我必须自己这样做。所以肯定会发生合理的原因。

    也就是说,考虑一下您是否最好在您的代码库中创建一个测试用户,以便可以针对该用户发出命令,无论在哪里运行,看到您的所有测试都在运行总是很高兴。

    【讨论】:

      猜你喜欢
      • 2021-04-23
      • 1970-01-01
      • 1970-01-01
      • 2010-12-12
      • 2013-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-03
      相关资源
      最近更新 更多