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 os

class 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 = None

a = 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

即可解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值