本文将介绍带有xdist的Pytest无法为所有测试打印日志的详细情况,特别是关于pytest无法执行的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关
本文将介绍带有xdist的Pytest无法为所有测试打印日志的详细情况,特别是关于pytest无法执行的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于C++软件添加dump调试打印日志(推荐)、MStest 跳过所有测试用例 .net 应用程序、paho-mqtt的python unittest无法正常工作-简单的语法问题、Pytest 中类范围夹具的意外行为 conftest.pytest_a.pytest_b.py的知识。
本文目录一览:- 带有xdist的Pytest无法为所有测试打印日志(pytest无法执行)
- C++软件添加dump调试打印日志(推荐)
- MStest 跳过所有测试用例 .net 应用程序
- paho-mqtt的python unittest无法正常工作-简单的语法问题
- Pytest 中类范围夹具的意外行为 conftest.pytest_a.pytest_b.py
带有xdist的Pytest无法为所有测试打印日志(pytest无法执行)
如何解决带有xdist的Pytest无法为所有测试打印日志?
我写了一个使用pytest的端口扫描程序测试。它接收带有IP地址列表的json文件,然后使用parametrize
对每个IP地址运行测试。使用Python logging
模块使用自定义日志消息创建日志文件。通过使用pytest-xdist
进行并行执行,我还可以大大减少运行时间。
问题在于,使用pytest-xdist
运行测试时,只有一个测试记录到日志文件中,而CLI输出与预期的完全相同。例如,如果测试针对4个不同的IP地址运行4次,则仅将其中一次运行的结果记录到日志文件中。确实记录下来的测试似乎是随机的,并且每次运行都会发生变化。并行执行测试时,登录到外部文件的正确方法是什么?
# Contents of pytest.ini
[pytest]
log_cli = 1
log_cli_level = CRITICAL
log_cli_format = %(message)s
log_file = port_scanner.log
log_file_level = DEBUG
log_file_format = %(asctime)s [%(levelname)8s] %(message)s (%(filename)s:%(lineno)s)
log_file_date_format=%Y-%m-%d %H:%M:%s
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
C++软件添加dump调试打印日志(推荐)
C++软件添加dump调试打印日志(推荐)
#include <DbgHelp.h> #pragma comment(lib,"dbghelp.lib") LONG WINAPI TopLevelExceptionFilter(struct _EXCEPTION_POINTERS *pExceptionInfo) { //cout << "Enter TopLevelExceptionFilter Function" << endl; TCHAR szPath[MAX_PATH] = { 0 }; TCHAR szFileName[MAX_PATH] = { 0 }; TCHAR* szVersion = "v1.0"; TCHAR dwBufferSize = MAX_PATH; SYstemTIME stLocalTime; GetLocalTime(&stLocalTime); CreateDirectory(szFileName,NULL); StringCchPrintf(szFileName,MAX_PATH,"%s-%04d%02d%02d-%02d%02d%02d-%ld-%ld.dmp", szVersion,stLocalTime.wYear,stLocalTime.wMonth,stLocalTime.wDay, stLocalTime.wHour,stLocalTime.wMinute,stLocalTime.wSecond, GetCurrentProcessId(),GetCurrentThreadId()); HANDLE hFile = CreateFile(szFileName,GENERIC_WRITE,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_norMAL,NULL); MINIDUMP_EXCEPTION_informatION stExceptionParam; stExceptionParam.ThreadId = GetCurrentThreadId(); stExceptionParam.ExceptionPointers = pExceptionInfo; stExceptionParam.ClientPointers = FALSE; MiniDumpWriteDump(GetCurrentProcess(),GetCurrentProcessId(),hFile,MiniDumpWithFullMemory,&stExceptionParam,NULL); CloseHandle(hFile); getchar(); return EXCEPTION_EXECUTE_HANDLER; } //----------------------------------------------
在程序最开始的地方调用这个函数
SetUnhandledExceptionFilter(TopLevelExceptionFilter);
以上这篇C++软件添加dump调试打印日志(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。
MStest 跳过所有测试用例 .net 应用程序
如何解决MStest 跳过所有测试用例 .net 应用程序?
MStest 所有测试用例都跳过 .net 应用程序。编写了近 3000 个单元测试用例,所有测试用例都被跳过,甚至调试点都没有达到。 Collogues 成功运行相同的应用程序。我正在使用 Visual Studio 2019。新项目 MSTest 工作正常。我删除了 .vs 文件夹并更新了 VS studio。平台目标 任何 cpu 和 x64 也尝试过。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
paho-mqtt的python unittest无法正常工作-简单的语法问题
我复制了您的代码示例,并使用了paho.mqtt客户端提供的示例进行连接
client.connect("mqtt.eclipse.org",1883,60)
我认为您的问题可能在您的on_connect函数上,您正在引用self.has_connected,但是您没有将self传递给该函数。
这对我来说很有效,请让我知道将self添加到on_connect中是否可以解决您遇到的问题!
class TestBrokerConnection(unittest.TestCase):
def setUp(self):
self.client = mqtt.Client("Test Client")
self.client.on_connect = self.on_connect
self.broker = "mqtt.eclipse.org"
self.port = 1883
self.has_connected = False
def on_connect(self,client,userdata,flags,rc): # connect function
if rc == 0:
self.has_connected = True
def test_connection(self): # test to check connection to broker
self.client.connect(self.broker,self.port)
self.client.loop_start()
time.sleep(2)
self.client.loop_stop()
self.assertTrue(self.has_connected)
Pytest 中类范围夹具的意外行为 conftest.pytest_a.pytest_b.py
如何解决Pytest 中类范围夹具的意外行为 conftest.pytest_a.pytest_b.py?
我正在学习 pytest 并研究不同夹具范围的行为。当我运行测试时,我看到类范围固定装置的意外行为。这是我的项目结构。
Pytest_Basics
│ conftest.py
└───pack1
test_a.py
test_b.py
这里是每个文件的内容。
conftest.py
import pytest
@pytest.fixture(scope=''session'',autouse=True)
def ses_fix():
print(''In session fixture'')
@pytest.fixture(scope=''package'',autouse=True)
def pak_fix():
print(''In package fixture'')
@pytest.fixture(scope=''module'',autouse=True)
def mod_fix():
print(''In module fixture'')
@pytest.fixture(scope=''class'',autouse=True)
def cls_fix():
print(''In class fixture'')
@pytest.fixture(scope=''function'',autouse=True)
def func_fix():
print(''In functon fixture'')
test_a.py
class TestA:
def test_a1(self):
assert True
def test_a2(self):
assert True
def test_a3(self):
assert True
test_b.py
def test_b1():
assert True
def test_b2():
assert True
def test_b3():
assert True
当我使用 pytest -v -s
运行测试时。我得到低于输出。
pack1/test_a.py::TestA::test_a1 In session fixture
In package fixture
In module fixture
In class fixture
In functon fixture
PASSED
pack1/test_a.py::TestA::test_a2 In functon fixture
PASSED
pack1/test_a.py::TestA::test_a3 In functon fixture
PASSED
pack1/test_b.py::test_b1 In module fixture
In class fixture
In functon fixture
PASSED
pack1/test_b.py::test_b2 In class fixture
In functon fixture
PASSED
pack1/test_b.py::test_b3 In class fixture
In functon fixture
PASSED
我预计类作用域夹具只会运行一次,因为我在 test_a.py
模块中只有一个类。但是,我看到它在 test_b.py
模块中执行测试时正在运行。
是什么导致了这种行为?这是错误还是我对类级别的固定装置了解有限。
环境:Python - 3.9.5,Pytest - 6.2.4
解决方法
这确实是类范围设备的行为方式。 documentation 中没有直接提到它,但可以从中推断出来。如前所述:
Fixtures 在首次被测试请求时创建,并根据其作用域销毁
带有 try{
Intent intent = new Intent("android.intent.action.MAIN");
intent.setClassName("com.android.settings","com.android.phone.settings.RadioInfo");
startActivity(intent);
} catch(Exception e){
Toast.makeText(getApplicationContext()," Device not supported",Toast.LENGTH_LONG).show();
}
的夹具应用于会话中的每个测试函数。它们根据其作用域被销毁,这意味着
基于会话、模块或函数的固定装置在会话、模块或函数结束时被销毁,每个测试函数都存在于此。然而,基于类的装置可以在类之外调用,并且为了保持一致,在这种情况下它们必须在函数之后被销毁 - 否则它们永远不会被销毁(如果没有类),或者会跨越类边界。重要的一点是类范围(或任何其他范围)并不意味着夹具仅应用于该范围(例如在类内部),而是应用于任何测试函数,并且范围仅在它被销毁时.
对于不存在于类中的函数,类范围的fixtures的行为就像函数范围的fixtures,但它们在函数范围的fixtures之前被调用并在基于函数的fixtures之后关闭:
conftest.py
autouse=True
test_fixt.py
@pytest.fixture(scope="function",autouse=True)
def fct_fixt():
print("function fixture start")
yield
print("function fixture end")
@pytest.fixture(scope="class",autouse=True)
def class_fixt():
print("class fixture start")
yield
print("class fixture end")
def test_1():
print("test_1 outside class")
class TestClass:
def test_1(self):
print("test_1 inside class")
def test_class_2(self):
print("test_2 inside class")
(为了清晰起见添加了缩进)
今天关于带有xdist的Pytest无法为所有测试打印日志和pytest无法执行的分享就到这里,希望大家有所收获,若想了解更多关于C++软件添加dump调试打印日志(推荐)、MStest 跳过所有测试用例 .net 应用程序、paho-mqtt的python unittest无法正常工作-简单的语法问题、Pytest 中类范围夹具的意外行为 conftest.pytest_a.pytest_b.py等相关知识,可以在本站进行查询。
本文标签: