我正在测试必须以2种方式构建的应用程序,包括每日,并行等。这个特定的应用程序需要一个带有假API的构建,其次需要真正的后端。
目前我的所有测试都标记为:
@sanity
@real
@fake
def test_TC101_first_time_use(self):
为每个构建运行特定的测试(一些测试必须从两个版本开始,有些只能在其中一个版本上启动)。
今天开发人员更改了伪API版本的软件包名称,因此可以同时安装这两个版本。
问题:是否可以使我的代码依赖于目前测试的版本?
例如,如果测试开始于: py.test -v -m"真实" 运行测试:
desired_caps['appPackage'] = 'com.companyname.appname'
self.driver.find_element_by_id("com.companyname.appname:id/button").click()
但是当测试开始时: py.test -v -m"假" 运行测试:
desired_caps['appPackage'] = 'com.companyname.appname_fake'
self.driver.find_element_by_id("com.companyname.appname_fake:id/button").click()
我已经尝试了解如何执行此操作但未找到任何特定(快速/简单)方法来解决此问题。我希望有人可以帮助我。
编辑: 作为一种解决方法,我使用简单的bash脚本替换* .py文件中的所有名称,然后再开始测试,但我仍然想知道是否可以采用其他方式。
答案 0 :(得分:0)
在pytest中,您可以根据命令行专门进行测试。 您需要在conftest.py中使用addoption() 例如: def pytest_addoption(解析器): parser.addoption(“ - all”,action =“store_true”, help =“运行所有组合”)
有关详细说明,请参阅: http://pytest.org/latest/example/parametrize.html