当前位置: 首页 > 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

即可解决


http://www.mrgr.cn/news/7650.html

相关文章:

  • 【正点原子K210连载】第三十二章 音频FFT实验 摘自【正点原子】DNK210使用指南-CanMV版指南
  • leetcode 438 找到字符串中所有字母异位词
  • 使用Python+winshell/shutil清空回收站
  • QML 界面切换的方法
  • Vue.js学习笔记(七)使用sortablejs或el-table-draggable拖拽ElementUI的el-table表格组件
  • C#高效异步文件监控与日志记录工具
  • node npm nvm 地址
  • 【Qt】输入类控件QDail
  • Python算法工程师面试整理-数据结构
  • 【数据结构】链表
  • 使用React和AntDesign构建初始前端项目及路由配置
  • vscode修改选中文字颜色及当前tab颜色
  • 红黑树
  • C++动态规划及九种背包问题
  • ESP RainMaker OTA 自动签名功能的安全启动
  • 井盖异动传感器:为城市安全加码
  • MATLAB 手动实现点云投影滤波器 (76)
  • 51单片机
  • 【赵渝强老师】管理MySQL的用户
  • 电子电气架构--- 智能汽车电子架构的核心诉求