小编jot*_*ken的帖子

在Alpine Docker容器上安装OpenSSH

第一次运行alpine docker容器并尝试openssh安装时,会发生以下情况:

ole@T:~$ docker run -it --rm alpine /bin/ash
/ # apk add openssh
WARNING: Ignoring APKINDEX.d3812b7e.tar.gz: No such file or directory
WARNING: Ignoring APKINDEX.bb2c5760.tar.gz: No such file or directory
ERROR: unsatisfiable constraints:
  openssh (missing):
    required by: world[openssh]
Run Code Online (Sandbox Code Playgroud)

应该如何安装openssh?

linux install docker alpine-linux

54
推荐指数
3
解决办法
5万
查看次数

如何在机器人框架中导入具有常用关键字的文件?

在机器人框架中,我有一个这样的测试套件:

test-suite/
  ??? Common.robot
  ??? TestCaseA.robot
  ??? TestCaseB.robot
Run Code Online (Sandbox Code Playgroud)

该文件Common.robot定义了两个TestCaseA.robot和将使用的一些关键字TestCaseB.robot.在其他语言Common.robot中称为库,但尝试像这样导入它

*** Settings ***
Library         Commons
Run Code Online (Sandbox Code Playgroud)

或者那样

*** Settings ***
Library         Commons.robot
Run Code Online (Sandbox Code Playgroud)

导致错误.

[ ERROR ] Error in file '[...]/TestCaseA.robot': Importing test library 'Commons' failed: ImportError: No module named Commons
Run Code Online (Sandbox Code Playgroud)

该关键字Library似乎仅适用于低级别测试库.我相信还有另一种方式.用户定义的库如何包含在机器人框架中?

testing robotframework

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

如何在Python中从子模块安装依赖项?

我有一个具有以下结构的Python项目(为简单起见,省略了相关的源文件):

myproject/
    mysubmodule/
        setup.py
    setup.py
Run Code Online (Sandbox Code Playgroud)

该文件myproject/setup.py用于distutils.core.setup安装模块myproject和相关源.但是,myproject需要mysubmodule安装(这是一个git子模块).所以我现在正在做的是:

myproject/$ cd mysubmodule
myproject/mysubmodule/$ python setup.py install
myproject/mysubmodule/$ cd ..
myproject/$ python setup.py install
Run Code Online (Sandbox Code Playgroud)

这对客户来说太单调乏味,特别是如果将来通过更多子模块扩展该项目.

有没有办法mysubmodule在调用时自动安装myproject/setup.py

python distutils git-submodules

7
推荐指数
2
解决办法
3367
查看次数

python joblib并行在Windows上工作甚至"如果__name__ =='__ main__':"被添加

我在Windows上运行Python并行处理.这是我的代码:

from joblib import Parallel, delayed

def f(x): 
    return sqrt(x)

if __name__ == '__main__':
    a = Parallel(n_jobs=2)(delayed(f)(i) for i in range(10))
Run Code Online (Sandbox Code Playgroud)

这是错误消息:

Process PoolWorker-2:  
Process PoolWorker-1:  
Traceback (most recent call last):    
File "C:\Users\yoyo__000.BIGBLACK\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.5.4.3105.win-x86_64\lib\multiprocessing\process.py", line 258, in _bootstrap
self.run()   
File "C:\Users\yoyo__000.BIGBLACK\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.5.4.3105.win-x86_64\lib\multiprocessing\process.py", line 114, in run
self._target(*self._args, **self._kwargs)   
File "C:\Users\yoyo__000.BIGBLACK\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.5.4.3105.win-x86_64\lib\multiprocessing\pool.py", line 102, in worker
task = get()   
File "C:\Users\yoyo__000.BIGBLACK\AppData\Local\Enthought\Canopy\User\lib\site-packages\joblib\pool.py", line 363, in get
return recv()  
AttributeError: 'module' object has no attribute 'f'
Run Code Online (Sandbox Code Playgroud)

python windows parallel-processing syntax-error python-2.7

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

如何在systemd的监视程序停止服务之前运行特定程序

我有一个程序由systemd运行,其服务文件如下:

[Unit]
Description=...

[Service]
Type=notify
ExecStart=/usr/sbin/myprogram
WatchdogSec=1
KillMode=process
KillSignal=SIGTERM
Restart=always
Run Code Online (Sandbox Code Playgroud)

它会定期向看门狗发送相应的信号.程序似乎不时挂起并由监视程序终止,然后重新启动.在看门狗终止之前,我想通过执行命令或运行其他脚本(例如运行gdb -p <PID> --batch -ex 'thread apply all backtrace')从程序中捕获一些信息.我该怎么做?

watchdog systemd

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

将大PIL图像转换为numpy数组

请考虑以下脚本:

from PIL import Image
import numpy as np
im = Image.new("F", (512, 512), 0.)
Run Code Online (Sandbox Code Playgroud)

这导致了

>>> np.asarray(im)
array([[ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       ..., 
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.]], dtype=float32)
Run Code Online (Sandbox Code Playgroud)

正如我所料.但是,如果我有一个更大的图像,比如说im = Image.new("F", (10240, 8600), 0.),转换会产生一个数组,其中PIL图像是唯一的元素:

>>> np.asarray(im)
array(<PIL.Image.Image image …
Run Code Online (Sandbox Code Playgroud)

python numpy python-imaging-library

6
推荐指数
0
解决办法
4529
查看次数

如何使用google测试抑制assert()导致的运行时错误?

我在C++项目中使用谷歌测试.某些函数使用assert()来检查无效的输入参数.我已经读过关于死亡测试(什么是Google测试,死亡测试)并在我的测试用例中开始使用它们.

但是,我想知道是否有一种方法可以抑制由断言失败引起的运行时错误.此时,每次失败的断言都会创建一个弹出窗口,每次运行测试时都必须关闭该窗口.随着我的项目的增长,这种行为越来越以不可接受的方式扰乱工作流程,我倾向于不再测试断言() - 断言.我知道通常可以禁用断言,但是从测试框架内部抑制操作系统生成的警告似乎更方便.

c++ assert runtime-error googletest

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

Googletest:如何异步运行测试?

给定一个包含数千个测试的大型项目,其中一些需要几分钟才能完成。按顺序执行时,整个测试集需要一个多小时才能完成。通过并行执行测试可以减少测试时间。

据我所知,没有办法直接从 googletest/mock 做到这一点,就像一个--async选项。还是我错了?

一种解决方案是确定可以并行运行的测试并编写一个脚本,在单独的作业中启动每个测试,即

./test --gtest_filter=TestSet.test1 &
./test --gtest_filter=TestSet.test2 &
...
Run Code Online (Sandbox Code Playgroud)

但这需要额外的维护工作,并在测试代码与其执行之间引入另一个“层”。我想要一个更方便的解决方案。例如,可以给 TEST 和 TEST_F 宏添加后缀并引入 TEST_ASYNC、TEST_F_ASYNC。然后,使用 TEST_ASYNC 定义的测试将由独立线程执行,同时开始。

如何做到这一点?或者还有其他解决方案吗?

c++ testing asynchronous googletest googlemock

5
推荐指数
2
解决办法
7903
查看次数

Robotframework:如何在打开浏览器的 Selenium 库中使用 Chromium?

我想使用 Robotframework 和 Selenium 对网站进行自动化测试。我的测试在 Firefox 中运行良好。但是,我想改用 Chromium。根据"Open Browser"文档,它应该适用于 Chrome。但是在我的 Ubuntu 机器上,我无法开箱即用地使用该浏览器。

这是一个最小的例子:

*** Settings ***
Library  SeleniumLibrary

*** Test Cases ***
Open Browser And Check Title
    Open Browser  about:blank  chromium
    Title Should Be  ${EMPTY}
Run Code Online (Sandbox Code Playgroud)

它失败并出现以下错误:

ValueError: chromium is not a supported browser.
Run Code Online (Sandbox Code Playgroud)

有没有办法在 Robotframework 中设置 Chromium 以与 Selenium 一起使用?

编辑:这最初是针对 Selenium2Library 要求的。在迁移到版本 3 时,他们从名称中删除了版本号。问题已相应更新。

testing chromium robotframework selenium-chromedriver selenium-webdriver

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