小编Mor*_*enB的帖子

pytest 报告太多断言失败

有没有办法让 pytest 只输出单行断言错误?

当您的模块带有断言时,就会出现此问题,如果这些断言失败,它将转储导致断言失败的整个函数。

> assert r.status_code == 200, f"{idtest.tools.now()} wrong status code {r.status_code}: resp:{r.text}"
E AssertionError: 2019-06-11 12:41:17.239128 wrong status code 500: resp:{"timestamp":"2019-06-11T10:41:17.187+0000","status":500,"error":"Internal Server Error","message":"The user was not found","path":"/mid/business"}
Run Code Online (Sandbox Code Playgroud)

在这种情况下, idtest.testapi.midbusiness() 完全显示在 pytest 输出中。

python verbosity pytest

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

使用私有注册表的Docker Pull / Push不带前缀

我们正在使用Nexus3泊坞窗组(将dockerhub代理和私有注册表结合使用),又名:

docker pull dockerproxy:5002/busybox
Run Code Online (Sandbox Code Playgroud)

如果私有注册表中不存在该命令,请尝试从dockerhub中拉取,将存储推送到私有注册表部分。工作正常。

但是我该怎么做:

docker pull busybox
Run Code Online (Sandbox Code Playgroud)

转到该注册表,而不必先添加dockerproxy:5002前缀?

环境变量?,$ HOME / .docker / config.json?广告标记?

谢谢

docker nexus3

4
推荐指数
2
解决办法
894
查看次数

Python3.12 三引号字符串 `\d` 上的语法警告必须是 `\\d`

更新到 Python 3.12 后,我收到有关某些三引号注释中的无效转义序列的警告。

这是新的限制吗?我习惯使用三引号字符串来记录代码,但这在 Python 3.12 之前从来都不是问题。

python3 --version
Python 3.12.0
$ ./some_script.py
/some_script.py:123: SyntaxWarning: invalid escape sequence '\d'
  """
Run Code Online (Sandbox Code Playgroud)

我尝试用以下内容替换所有行\d

20230808122708.445|INFO|C:\dist\work\trk-fullstack-test\namespaces.py

\\d

20230808122708.445|INFO|C:\\dist\work\trk-fullstack-test\namespaces.py

警告消失。

抑制警告似乎不起作用:

import warnings
warnings.filterwarnings('ignore', category=SyntaxWarning)
Run Code Online (Sandbox Code Playgroud)

有关如何正确执行此操作的任何指示?我希望我不必转义代码中三引号中记录的所有 Windows 路径。

python warnings quoting python-3.12

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

访问Carp :: longmess()输出中的引用参数

我们有一些多级逃逸,如果失败,传递参数不会显示太多,我希望我可以访问更高级别传递的Carp :: longmess()参数,因为转储真的是我所拥有的.

[DEBUG:2564] 2013/10/07 12:54:06 /opt/s3/server/S3Comparator.pm:183 - compare() - stacktrace: at (eval 1312) line 2.
S3AIHelper::__ANON__('S3TransISO8583=HASH(0x1696eb10)') called at /opt/s3/server/S3AIHelper.pm line 777
S3AIHelper::match_fields('S3TransISO8583=HASH(0x1696eb10)', 'HASH(0x168dc750)', '') called at /opt/s3/server/S3AIHelper.pm line 177
S3AIHelper::fieldhits('S3TransGroup=HASH(0x16953d10)', 'HASH(0x168dc750)', '') called at (eval 1081) line 90
Run Code Online (Sandbox Code Playgroud)

解析后它看起来像这样:

my $value = 'S3TransISO8583=HASH(0x1696eb10)';
Run Code Online (Sandbox Code Playgroud)

如何让它成为一个完整内容的S3TransISO8583对象.我将在同一个运行实例中执行此操作,因此内存地址有效.

谢谢

perl eval

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

git push的默认参数

我需要这样做,git push origin -o ci.skip所以我不会触发大量的gitlab管道。(当它们变大时,我将它们移到预定的位置)。

有没有办法设置项目〜/ .git / config,因此默认情况下此参数为on。

git gitlab

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

selenium 将两个 xpath 测试合二为一

我尝试结合检查两种情况:

如果启动检查失败,我们会看到重试按钮:

el = WebDriverWait(self.driver, 10).until(
  EC.element_to_be_clickable((By.NAME, "Try again")))
Run Code Online (Sandbox Code Playgroud)

或者启动检查成功,我们在自定义对象中收到 pin 输入请求:

el = WebDriverWait(self.driver, 20).until(
  EC.element_to_be_clickable((By.XPATH, "//Custom/Edit")))
Run Code Online (Sandbox Code Playgroud)

如何将其合并为一项检查而不必同时检查两者:我尝试了以下方法:

check = WebDriverWait(self.driver, 20).until(
  EC.element_to_be_clickable(
    (By.XPATH, "//Custom/Edit") or (By.NAME, "Try again")
))
Run Code Online (Sandbox Code Playgroud)

但只or检查第一个语句。

python selenium xpath css-selectors webdriverwait

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

Dockerfile CMD不接受变量

无法在CMD行上使用变量:

#CMD ["/opt/jdk/bin/java", "-jar", "${ARTIFACTID}-${VERSION}.${PACKAGING}"]
CMD ["/opt/jdk/bin/java", "-jar", "ssltools-domain-LATEST.jar"]
Run Code Online (Sandbox Code Playgroud)

最新的线路工作,而不是第一个.

任何帮助或解决方法非常感谢

docker dockerfile

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

pythonlogging.ritic() 引发异常并转储堆栈跟踪并死亡

我正在从 perl (log4perl) 和 java (slf4j) 移植一些代码。一切都很好,除了logging.ritic() 不会像其他框架中那样转储堆栈跟踪并死掉,需要添加大量额外的代码,logger.exception() 也只写入错误。

今天我这样做:

try:
    errmsg = "--id={} not found on --host={}".format(args.siteid, args.host)
    raise GX8Exception(errmsg)
except GX8Exception as e:
    log.exception(e)
    sys.exit(-1)
Run Code Online (Sandbox Code Playgroud)

这会产生:

2018-01-10 10:09:56,814 [ERROR   ] root         --id=7A4A7845-7559-4F89-B678-8ADFECF5F7C3 not found on --host=welfare-qa
Traceback (most recent call last):
  File "./gx8-controller.py", line 85, in <module>
    raise GX8Exception(errmsg)
GX8Exception: --id=7A4A7845-7559-4F89-B678-8ADFECF5F7C3 not found on --host=welfare-qa
Run Code Online (Sandbox Code Playgroud)

有没有办法配置 pythonmodule 记录器来执行此操作,或任何其他框架来执行相同的操作:

log.critical("--id={} not found on --host={}".format(args.siteid, args.host))
Run Code Online (Sandbox Code Playgroud)

logging exception python-3.x

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