[ERROR] 2023-06-01 03:43:57,815 get_cns failed: please check the following logs: [ERROR] 2023-06-01 03:43:57,815 /home/NAS1/c3/qq/genome/07_TB/01_assembly/01_nextdenovo/01_rundir/02.cns_align/01.get_cns.sh.work/get_cns00/nextDenovo.sh.e
时间: 2023-09-29 08:07:29 浏览: 86
这是一个错误日志,记录了程序执行过程中遇到的一个错误。根据此错误日志,似乎是在执行 `/home/NAS1/c3/qq/genome/07_TB/01_assembly/01_nextdenovo/01_rundir/02.cns_align/01.get_cns.sh.work/get_cns00/nextDenovo.sh` 脚本时出现了错误。具体错误原因需要查看更多的日志信息或者检查脚本和相关的文件是否存在或者是否有权限访问。
相关问题
def test05_handBook(self): """ 操作手册 """ logger.info("执行设备管理:操作手册---TestCase5---") try: self.cns.Handbook() logger.info("设备管理:操作手册---测试PASS---") logger.info("设备管理:测试完毕") except Exception as e: logger.info("设备管理:操作手册---测试FAIL---") 如果我需要执行这个单条用例,要标注@class吗
如果你想执行这个单条用例,可以使用 `unittest` 模块提供的 `TestSuite` 类来创建一个只包含该用例的测试套件,然后再运行这个测试套件。具体实现可以参考如下代码:
```python
import unittest
from DeviceManagement_testcases import DeviceManagementTestCases
class TestDeviceManagement(unittest.TestCase):
def setUp(self):
self.cns = DeviceManagementTestCases()
# ...
def test05_handBook(self):
""" 操作手册 """
logger.info("执行设备管理:操作手册---TestCase5---")
try:
self.cns.Handbook()
logger.info("设备管理:操作手册---测试PASS---")
logger.info("设备管理:测试完毕")
except Exception as e:
logger.info("设备管理:操作手册---测试FAIL---")
if __name__ == '__main__':
# 创建测试套件,并添加 test05_handBook 测试用例
suite = unittest.TestSuite()
suite.addTest(TestDeviceManagement('test05_handBook'))
# 运行测试套件
runner = unittest.TextTestRunner()
runner.run(suite)
```
这样,就可以只运行 `test05_handBook` 这个测试用例了。注意,在这个测试用例中,不需要使用 `@classmethod` 装饰器,因为这个测试用例是一个实例方法,不是一个类方法。
def setUpClass(cls): cls.process = process cls.cns = ConnectSrt(process=cls.process) cls.last_result = None def tearDown(self): self.last_result = self._outcome.result def test01_connect(self): #用例描述 """ 正确密码连接 """ #增加打印Log,方便明确当前为第几条测试用例 logger.info("执行设备管理:正确密码连接---TestCase1---") data = { "passwd": 1234 } try: #传输data-passwd数据,执行DeviceManagement-Connect方法 self.cns.Connect(**data) assert self.cns.dlg['Connected'].exists() logger.info("设备管理:正确密码连接---测试PASS---") except Exception as e: logger.info("FAIL") logger.error(str(e)) logger.info("设备管理:正确密码连接---测试FAIL---") self.assertEqual(True, False) @unittest.skipIf(last_result and last_result.failures,reason="last_testcase is failed") def test02_disconnect(self):
这段代码中定义了一个测试类,包含了 `setUpClass()` 方法、`tearDown()` 方法和两个测试用例方法:`test01_connect()` 和 `test02_disconnect()`。
在 `setUpClass()` 方法中,我们创建了一个 `ConnectSrt` 对象,并将其保存到类属性 `cls.cns` 中。同时,我们创建了一个类属性 `cls.last_result`,用于保存上一条测试用例的执行结果。
`tearDown()` 方法是一个实例方法,在每个测试用例执行后都会被调用。在这个方法中,我们将上一条测试用例的执行结果保存到类属性 `self.last_result` 中。
`test01_connect()` 和 `test02_disconnect()` 分别对应了两个测试用例。其中,`test01_connect()` 测试用例测试了正确密码连接,`test02_disconnect()` 测试用例测试了断开连接。
在 `test01_connect()` 方法中,我们首先定义了一个字典 `data`,用于传递测试数据。然后,我们调用 `self.cns.Connect()` 方法,传入测试数据,执行连接操作。接着,我们使用 `assert` 语句断言连接是否成功。如果连接成功,则输出日志信息,测试用例通过。如果连接失败,则输出日志信息,测试用例失败。
在 `test02_disconnect()` 方法中,我们使用了 `@unittest.skipIf()` 装饰器来跳过上一条测试用例失败的情况。具体来说,如果上一条测试用例执行失败,则跳过当前测试用例。这个装饰器接受两个参数:一个条件表达式和一个跳过的原因。在这个例子中,条件表达式为 `last_result and last_result.failures`,表示上一条测试用例执行失败。跳过的原因为 `"last_testcase is failed"`。
需要注意的是,在这段代码中,`last_result` 是一个类属性,应该使用 `cls.last_result` 来引用它。同时,在 `test01_connect()` 方法中,我们使用了 `logger` 对象来记录日志信息。`logger` 是 Python 标准库中的一个日志处理模块,可以用来记录程序运行时的信息、警告和错误。
阅读全文