将字典传递到参数化方法中时出现“所需功能必须是字典”错误

时间:2019-04-04 06:53:42

标签: python automated-tests appium pytest python-appium

我正在使用Appium和pytest测试移动应用程序。当我尝试通过参数化的pytest标记传递字典列表时,出现以下错误。

 WebDriverException: Message: Desired Capabilities must be a dictionary

当我不使用@pytest.mark.parametrize()并直接将所需的功能作为字典传递给webdriver.Remote时,效果很好。

为了更好的理解,我对代码做了一些简化:

class TestQATestProject(object): 
  def get_all(self):
      return [
          {'platformName': 'Android'},
          {'platformName': 'Android'}
      ]


  @pytest.mark.parametrize('desired_caps', get_all())
  def setup_method(self, desired_caps):
      self.driver = webdriver.Remote('http://localhost:4723/wd/hub', 
  desired_caps)
      self.driver.implicitly_wait(5000)

[UPD] 我发现@pytest.mark.parametrizesetup_method上无法正常工作。那么还有另一种方法可以在不同的配置上运行测试吗?

1 个答案:

答案 0 :(得分:0)

@pytest.mark.unit为我达成协议