小编sun*_*ata的帖子

如何使用 pytest-cov 生成覆盖率报告并打印到终端?

背景

我刚开始使用 pytest 和 pytest-cov,已从 unittest +coverage.py 切换过来

我首先设置我的自动化测试以这种方式运行:

python3 -m pytest --cov=myapplication

这给了我这样的输出到终端:

----------- coverage: platform linux, python 3.8.5-final-0 -----------
Name                        Stmts   Miss  Cover
-----------------------------------------------
myapplication/__init__.py       0      0   100%
myapplication/file.py          30     30     0%
myapplication/another_file.py  20      6    70%
[...]
-----------------------------------------------
TOTAL                        1195    464    61%
Run Code Online (Sandbox Code Playgroud)

然后我想生成一个 xml 报告,所以我更改了命令:

python3 -m pytest --cov-report xml:coverage.xml --cov=myapplication

问题

我遇到的问题是添加后--cov-report xml:coverage.xml我不再从终端获得任何输出

查看pytest-cov 的文档我发现:

这三个报告选项输出到文件,而不在终端上显示任何内容:[继续显示 xml、html 和注释报告选项]

问题

如何在同一测试运行中生成报告并打印到终端?(这可能吗?)

(我可以运行测试套件两次,但如果可以的话,我想一次完成所有事情)


我正在使用这些版本:

  • Python 3.8.5
  • pytest 6.2.2(撰写本文时的最新版本)
  • pytest-cov 2.11.1 (-"-)

python code-coverage pytest pytest-cov

13
推荐指数
1
解决办法
3万
查看次数

在Qt小部件中的黑暗主题?

背景

我正在构建一个PyQt5应用程序,我希望它有一个黑暗的主题.以前我曾经使用Android开发,我可以为整个应用程序设置一个黑暗的主题

是否在Qt中内置了一个黑暗的主题(适用于应用程序中的所有小部件,这是跨平台的)?

qt pyqt qstyle qt5 pyqt5

12
推荐指数
3
解决办法
1万
查看次数

如何将所有库(.so/.dll)文件放在子目录中?

我正在将 Pyinstaller 用于我的跨平台项目,并希望将所有库文件(.so/.dll)“隐藏”在子目录中,以便更容易找到可执行文件(现在是 .so/ 的列表) .dll 文件太长,以至于我们收到了无法找到它的用户的反馈!)

如何修改我的 .spec 文件以将所有 .so/.dll 文件放入子目录中?

--one-file(由于其他原因我不想使用)

这就是我的 .spec 文件对于 gnu/linux 的样子(对于 Macos 和 Windows,文件类似):

# -*- mode: python -*-

block_cipher = None

import os
cwd_str = os.getcwd()

a = Analysis(['mindfulness-at-the-computer.py'],
             pathex=[cwd_str],
             binaries=[],
             datas=[('./README.md', '.'), ('./LICENSE.txt', '.')],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)

user_files_dir_str = "user_files"
a.datas += Tree('./' + user_files_dir_str, prefix=user_files_dir_str, excludes=['*.db'])
icons_dir_str = "icons"
a.datas += Tree('./' + icons_dir_str, prefix=icons_dir_str)

pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          exclude_binaries=True, …
Run Code Online (Sandbox Code Playgroud)

pyinstaller

5
推荐指数
0
解决办法
348
查看次数

当用户与列表交互时,如何获取QListWidget的所有选定项?

我如何获取事件处理程序(“插槽”)中QListWidget的所有选定项,该事件处理程序在用户与列表进行交互时被激活?换句话说,当用户执行某项操作时(例如在列表中选择一个新的选择),我需要有可用选择项的完整列表。

到目前为止,我尝试使用的是什么QListWidget.currentItemChanged,然后尝试使用来获取所有选定的列表项QListWidget.selectedItems()。这种方法的问题在于,从selectedItems()函数返回的列表直到退出我已连接的事件处理程序后才更新至currentItemChanged

我正在寻找的解决方案必须与“ MultiSelection”一起使用(可以同时选择多个列表项)

感谢帮助和友善的问候,托德

python pyqt qlistwidget pyqt5

4
推荐指数
1
解决办法
6044
查看次数

摆脱 QListWidget 底部的空白区域

我正在使用QListWidgetwith setItemWidget,当将项目添加到列表并向下滚动到底部时,我得到了这个结果:

在此处输入图片说明

所以底部有一个完全空白的区域(不可选择,在上面的图像中列表中的最后一个项目已被选中)

我怎样才能摆脱列表底部的这个空白区域?

请注意,列表中行的高度可以不同

感谢帮助和亲切的问候,托德

qt pyqt qlistwidget qt5 pyqt5

4
推荐指数
1
解决办法
916
查看次数

删除 :memory 中的数据库文件:

背景和问题

我们在:memory:测试时使用来存储我们的数据库,并希望在每个测试用例运行之前将其删除,以便我们从每个测试用例的空数据库开始。(如果我们将数据库存储在磁盘上,我们只需删除文件)

我们的设置

  • 我们正在使用 Python 的unittest模块
  • (Python 版本:3.6)
  • 这是我们创建数据库的样子: db_connection = sqlite3.connect(":memory:")

我们如何从内存中删除我们的数据库?

python sqlite python-3.x python-unittest

4
推荐指数
1
解决办法
3801
查看次数

我如何使用 QComboBox.setPlaceholderText?

在 Qt 5.15placeholderText中引入了该属性 -文档链接

但是使用setPlaceholderText对我没有任何作用。运行下面的代码时,我没有收到任何文本QComboBox(当然,除非我选择了三个项目之一)

组合框

这是一个错误还是我错过了什么?我怎样才能使这项工作?

import sys
from PyQt5 import QtWidgets
from PyQt5 import QtCore


class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()

        central_w = QtWidgets.QWidget()
        self.setCentralWidget(central_w)
        vbox = QtWidgets.QVBoxLayout()
        central_w.setLayout(vbox)

        self.combo_box = QtWidgets.QComboBox()
        self.combo_box.addItems(["one", "two", "three"])
        self.combo_box.setPlaceholderText("Some placeholder text here")
        self.combo_box.setCurrentIndex(-1)
        vbox.addWidget(self.combo_box)


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    main_window = MainWindow()
    main_window.show()
    app.exec_()
Run Code Online (Sandbox Code Playgroud)

我找不到显示占位符文本的方法。我试过组合框中根本没有任何项目,但即使这样也没有显示占位符文本


这些是我正在运行的版本:

  • Qt:5.15.2
  • PyQt(Python 模块)版本:5.15.2(这恰好与 Qt 版本相同,但有时会略有不同)
  • Python:“3.8.5(默认,2020 年 7 月 28 日,12:59:40)\n[GCC 9.3.0]”
  • 操作系统:Ubuntu 20.04.1 LTS(使用 Xfce) …

python pyqt qcombobox pyqt5

4
推荐指数
1
解决办法
188
查看次数

从 Java 字符串的末尾删除不可见字符

如何在 Java 字符串中找到最后一个可见字符?我想从 Java 字符串中删除所有换行符和其他不可见字符

亲切的问候,托德

java string

1
推荐指数
1
解决办法
6644
查看次数

使用 Python 删除变音符号

我有个字符的几个文本文件,其中有区别标记,例如èáô等等。我想将这些字符替换eao,等

我怎样才能在 Python 中实现这一点?感谢帮助!

python text diacritics python-3.x

1
推荐指数
1
解决办法
4184
查看次数

如何增加 QListWidget 中项目/行的填充(或边距)?

我们正在寻找一种方法来增加QListWidget我们在应用程序中使用的填充(或边距)。我们想为所有四个方向增加此值,以便为列表中的文本提供一些额外的空间

我看了两个文档QListWidgetQListWidgetItem并不能找到任何东西。对于QListWidget存在的setContentsMargins这是从继承QWidget但这是小部件作为一个整体(而不是单个条目)。

我们可以做些什么来解决这个问题?感谢帮助!

qt pyqt qlistwidget qt5 qlistwidgetitem

1
推荐指数
2
解决办法
6708
查看次数