近日,使用Pytest+Appium 实现APP端UI自动化,遇到Pytest收集用例失败的情况。

报错信息如下:

test_room.py:None (test_room.py)
ImportError while importing test module '/Users/XXXX/case/test_room.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
test_room.py:5: in <module>
from Page.init_page import InitPage
../Page/init_page.py:8: in <module>
from Page.home_page import HomePage
../Page/home_page.py:4: in <module>
from Page.room_page import RoomPage
../Page/room_page.py:5: in <module>
from Page.home_page import HomePage
E ImportError: cannot import name 'HomePage' from 'Page.home_page' (/Users/XXXX/Page/home_page.py)

目录结构如下:

报错原因分析:

主要是因为home_page.py和room_page.py这两个文件内的类之间有相互调用引起的

  • home_page.py涉及代码:
from Page.room_page import RoomPage

class HomePage(BasePage):
def goto_room(self):
self.find_element_until_visibility(self._room).click()
return RoomPage(self.driver)
  • room_page.py涉及代码:
from Page.home_page import HomePage

class RoomPage(BasePage):
def back_home_page(self):
self.find_element_until_visibility(self._back_btn).click()
return HomePage(self.driver)

解决办法

直接将room_page.py涉及到的HomePage的引用直接放到特定的函数中引用,而不是整个文件的引用

  • 解决后room_page.py涉及代码:

class RoomPage(BasePage):
def back_home_page(self):
self.find_element_until_visibility(self._back_btn).click()
from Page.home_page import HomePage
return HomePage(self.driver)

Pytest执行用例报Hint: make sure your test modules/packages have valid Python names.的更多相关文章

  1. pytest框架执行自动化测试时使用pycharm正常运行,使用cmd或Terminal报错:Hint: make sure your test modules/packages have valid Python names.

    问题描述: 使用pytest框架做接口自动化测试时,在测试用例所在的.py文件下使用pycharm的run功能可以正常跑用例,使用cmd运行窗口或Terminal则报下图中的错误: Hint: mak ...

  2. Spark执行样例报警告:WARN scheduler.TaskSchedulerImpl: Initial job has not accepted any resources

    搭建Spark环境后,调测Spark样例时,出现下面的错误:WARN scheduler.TaskSchedulerImpl: Initial job has not accepted any res ...

  3. pytest执行用例时从conftest.py抛出ModuleNotFoundError:No module named 'XXX'异常的解决办法

    一.问题描述 在项目根目录下执行整个测试用例,直接从conftest.py模块中抛出了ModuleNotFoundError:No module named 'TestDatas'的异常: 二.解决方 ...

  4. pytest执行用例:明明只写了5个测试用例, 怎么收集到33个!?

    pytest收集测试用例的顺序: 同一个项目中搜索所有以test_开头的测试文件.test_开头的测试类.test_开头的测试函数 执行测试用例的顺序: 是按照先数据(0~9)>再字母(a~z) ...

  5. pytest(13)-多线程、多进程执行用例

    有些项目的测试用例较多,测试用例时需要分布式执行,缩短运行时间. pytest框架中提供可用于分布式执行测试用例的插件:pytest-parallel.pytest-xdist,接下来我们来学习这两个 ...

  6. robotframework执行用例时,报错selenium.common.exceptions.WebDriverException: Message: unknown error: cannot get automation extension from unknown error: page could not be found: chrome-extension://aapnijgdinl

    在用robotframework编写移动端测试用例(用chrome浏览器模拟手机浏览器),执行用例时, 报错selenium.common.exceptions.WebDriverException: ...

  7. Pytest(15)pytest分布式执行用例

    前言 平常我们功能测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟,如果单个测试人员执行需要1000分钟才能跑完 当项目非常紧急时,会需要协调多个测试资源来把任务分成两部分,于是执行时间 ...

  8. python--selenium多线程执行用例实例/执行多个用例

    python--selenium多线程执行用例实例/执行多个用例 我们在做selenium测试的时候呢,经常会碰到一些需要执行多个用例的情况,也就是多线 程执行py程序,我们前面讲过单个的py用例怎么 ...

  9. 执行用例,并生成报告——discover,HTMLRunner

    HTMLRunner需要下载Python3的格式,懒人链接:http://pan.baidu.com/s/1tp3Ts 参考:http://bbs.chinaunix.net/thread-41547 ...

随机推荐

  1. 数据结构实验之图论十:判断给定图是否存在合法拓扑序列(SDUT 2140)

    分析:BFS判断是否有环. #include<bits/stdc++.h> using namespace std; typedef long long ll; int gra[200][ ...

  2. hadoop(10)---hdfs配置文件详解

    以下只是简单的对hdfs(hdfs.site.xml)配置文件做一个简单的说明. <configuration><property><!-- 为namenode集群定义一 ...

  3. Redis企业实战的一些坑

    附录:Redis企业实战的一些坑 一.前言 小伙伴们对Redis应该不陌生,Redis是系统必备的分布式缓存中间件,主要用来解决高并发下分担DB资源的负载,从而提升系统吞吐量. Redis支持多种数据 ...

  4. Linux CentOS 使用Yum源安装MySQL 5.7

    在CentOS(Fedora.RedHat)系统中,可以使用yum install mysql命令来安装MySQL,但所安装的MySql版本一般都较旧,所以更推荐通过源码编译安装或下载最新rpm安装包 ...

  5. Sentinel 快速入门

    Sentinel 简介 什么是 Sentinel? 『Sentinel』是阿里中间件团队开源的,面向分布式服务架构的轻量级高可用流量控制组件,主要以流量为切入点,从流量控制.熔断降级.系统负载保护等多 ...

  6. hwclock和date源码分析

    一. hwclock 1.1 hwclock源码在哪里? util-linux 或者busybox 1.2 获取源码 git clone https://github.com/karelzak/uti ...

  7. paint之文字示例

    package com.loaderman.customviewdemo; import android.content.Context; import android.graphics.Canvas ...

  8. Java Web接入支付宝扫码付款API(使用SDK证书配置properties )

    一.支付宝当面付功能Demo 官方文档https://docs.open.alipay.com/194/106078/ ps:因为沙箱环境一经配置了证书公钥则无法重置 第一步下载项目SKD&D ...

  9. centos7安装配置gitlab详细教程

    一. 安装并配置必要的依赖关系在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问. 1.安装ss ...

  10. php注册自动加载函数

    $autoload_func = function($class) { $class = str_replace('\\', '/', $class); $file_name = dirname(__ ...