Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
阿皮姆;py检验;python对具有不同软件包名称的两个应用程序进行相同的测试_Python_Appium_Pytest_Ui Testing - Fatal编程技术网

阿皮姆;py检验;python对具有不同软件包名称的两个应用程序进行相同的测试

阿皮姆;py检验;python对具有不同软件包名称的两个应用程序进行相同的测试,python,appium,pytest,ui-testing,Python,Appium,Pytest,Ui Testing,我正在测试的应用程序必须以两种方式构建,包括每日、并行等。这个特定的应用程序需要一个使用假API的构建,第二个使用真实的后端 目前,我所有的测试都标记如下: @sanity @real @fake def test_TC101_first_time_use(self): 并为每个构建运行特定的测试(有些测试必须为两个版本启动,有些测试只能在其中一个版本上启动) 今天,开发人员更改了假API版本的包名,以便可以同时安装这两个版本 问题:是否有可能使我的代码依赖于当前测试的版本 例如,如果测试由:

我正在测试的应用程序必须以两种方式构建,包括每日、并行等。这个特定的应用程序需要一个使用假API的构建,第二个使用真实的后端

目前,我所有的测试都标记如下:

@sanity
@real
@fake
def test_TC101_first_time_use(self):
并为每个构建运行特定的测试(有些测试必须为两个版本启动,有些测试只能在其中一个版本上启动)

今天,开发人员更改了假API版本的包名,以便可以同时安装这两个版本

问题:是否有可能使我的代码依赖于当前测试的版本

例如,如果测试由:py.test-v-m“real”启动,则使用以下命令运行测试:

desired_caps['appPackage'] = 'com.companyname.appname'
self.driver.find_element_by_id("com.companyname.appname:id/button").click()
desired_caps['appPackage'] = 'com.companyname.appname_fake'
self.driver.find_element_by_id("com.companyname.appname_fake:id/button").click()
但是当测试由:py.test-v-m“假”启动时,使用以下命令运行测试:

desired_caps['appPackage'] = 'com.companyname.appname'
self.driver.find_element_by_id("com.companyname.appname:id/button").click()
desired_caps['appPackage'] = 'com.companyname.appname_fake'
self.driver.find_element_by_id("com.companyname.appname_fake:id/button").click()
我试图寻找信息如何做到这一点,但没有找到任何具体的(和快速/简单的)方法来解决这个问题。我希望有人能帮我

编辑:
作为一种解决方法,我使用简单的bash脚本,在开始测试之前替换*.py文件中的所有名称,但我仍然想知道这是否可以用其他方法实现。

在pytest中,您可以根据命令行专门化测试。 您需要在conftest.py中使用addoption() 例如: def pytest_addoption(解析器): parser.addoption(“--all”,action=“store\u true”, help=“运行所有组合”)

有关详细说明,请参阅:

在pytest中,您可以根据命令行专门化测试。 您需要在conftest.py中使用addoption() 例如: def pytest_addoption(解析器): parser.addoption(“--all”,action=“store\u true”, help=“运行所有组合”)

有关详细说明,请参阅:

谢谢您的回复。我确实看到了这种方法,但坦率地说,尝试使用它失败了。Atm我在Jenkins上使用${PACKAGE_NAME}和变量注入,工作正常,但它不是无问题的解决方案。如果有更多时间,我将再次尝试使用该参数化。我使用了pytest_addoption(),效果非常好。感谢您的回复。我确实看到了这种方法,但坦率地说,尝试使用它失败了。Atm我在Jenkins上使用${PACKAGE_NAME}和变量注入,工作正常,但它不是无问题的解决方案。如果有更多时间,我将再次尝试使用该参数化。我使用了pytest_addoption(),效果非常好。