当前位置: 首页 > news >正文

pyintaller pyqt5 pytest打包后 找不到测试实例

pyintaller pyqt5 pytest打包后 找不到测试实例
1.项目目录

my_project/
├── src/
│   ├── tests/
│   │   ├── test_example.py
│   ├── main.py
├── my_project.spec

2.main.py

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
import pytest
import osclass TestApp(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setWindowTitle('Run Pytest Example')layout = QVBoxLayout()self.runButton = QPushButton('Run Tests', self)self.runButton.clicked.connect(self.run_tests)layout.addWidget(self.runButton)self.setLayout(layout)def run_tests(self):current_dir = os.path.dirname(os.path.abspath(__file__))test_dir = os.path.join(current_dir, 'src/tests')pytest.main([test_dir])if __name__ == '__main__':app = QApplication(sys.argv)ex = TestApp()ex.show()sys.exit(app.exec_())

3.编写测试用例:在 src/tests/test_example.py 中编写测试用例。

def test_example():assert 1 + 1 == 2

4.创建 .spec 文件:使用 PyInstaller 生成 .spec 文件,并在其中添加资源文件

# my_project.spec
# -*- mode: python ; coding: utf-8 -*-block_cipher = Nonea = Analysis(['src\\main.py'],pathex=['.'],binaries=[],datas=[('src\\tests', 'src\\tests')],hiddenimports=[],hookspath=[],runtime_hooks=[],excludes=[],win_no_prefer_redirects=False,win_private_assemblies=False,cipher=block_cipher,
)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
exe = EXE(pyz,a.scripts,[],exclude_binaries=True,name='my_project',debug=False,bootloader_ignore_signals=False,strip=False,upx=True,upx_exclude=[],runtime_tmpdir=None,console=True,
)
coll = COLLECT(exe,a.binaries,a.zipfiles,a.datas,strip=False,upx=True,upx_exclude=[],name='my_project',
)

5.使用 PyInstaller 打包:在命令行中运行以下命令来打包你的应用程序:

pyinstaller my_project.spec
pyinstaller --onefile --hidden-import=unittest.mock --add-data "src\tests;src\tests" src/main.py

即可解决

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 若依,前后端分离项目,部署到服务器
  • WIFI 配网
  • 银发族拥抱新中式旅游,牵动2万亿市场,旅游业如何接住商机?
  • Python编程的终极十大工具(非常详细)零基础入门到精通,收藏这一篇就够了
  • Debezium日常分享系列之:Debezium 3.0.0.Beta发布
  • 网络安全实训六(靶机实例DC-3)
  • MySQL系列—5.用户管理
  • Getting RateLimitError while implementing openai GPT with Python
  • 如何使用ssm实现电子病历系统
  • Java面试宝典-java基础05
  • 2008-2020年 中国健康与养老追踪调查CHARLS数据合集
  • Quarkus 后端开发记录
  • 机器学习算法与Python实战 | 8个特征工程技术,提高机器学习预测能力
  • 关于java中Excel的导入导出
  • Python自动化办公2.0 课程更新
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • C++入门教程(10):for 语句
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • Javascript弹出层-初探
  • Js基础知识(一) - 变量
  • mysql 5.6 原生Online DDL解析
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Redis字符串类型内部编码剖析
  • 前端
  • 如何编写一个可升级的智能合约
  • 三栏布局总结
  • 小程序01:wepy框架整合iview webapp UI
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • kubernetes资源对象--ingress
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • 我们雇佣了一只大猴子...
  • ###STL(标准模板库)
  • #pragam once 和 #ifndef 预编译头
  • #数据结构 笔记一
  • (70min)字节暑假实习二面(已挂)
  • (C)一些题4
  • (二十九)STL map容器(映射)与STL pair容器(值对)
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (六)DockerCompose安装与配置
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (三十五)大数据实战——Superset可视化平台搭建
  • (源码分析)springsecurity认证授权
  • (转)大道至简,职场上做人做事做管理
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .form文件_SSM框架文件上传篇
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET MAUI Sqlite数据库操作(二)异步初始化方法
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .net分布式压力测试工具(Beetle.DT)
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • [ IO.File ] FileSystemWatcher