我正在为网站前端开发一个Vue.js应用程序.
对于这个应用程序,我想使用单元和E2E测试.我用vue-cli构建了我的项目.
根据我的理解,vue-cli使用Karma进行单元测试,使用Nightwatch + Selenium进行E2E测试.
我.gitlab-ci.yml看起来如下:
stages:
- test
test:express:
image: node:boron
stage: test
script:
- cd backend/
- npm install --progress=false
- ./node_modules/.bin/jasmine
test:vue:
image: node:boron
stage: test
script:
- cd frontend/
- npm install --progress=false
- npm test
Run Code Online (Sandbox Code Playgroud)
npm test运行e2e和单元测试,并在本地计算机上运行.单元测试运行平稳,Selenium启动Chrome窗口并使用E2E测试.
问题是不知道如何在GitLab CI上运行E2E Selenium测试.它一直给我一个错误说:
Could not connect to Selenium Server. Have you started the Selenium Server yet?虽然它之前说过它已经创建了一个Selenium服务器.
如何在GitLab CI上运行E2E Selenium测试?如果无法实现,我可以在GitLab CI上运行哪种E2E?
我正在尝试为OpenVSlam项目生成 Python 绑定。
我正在使用 PyBind11 并遵循cmake_example模板。
我在我的开发环境中成功构建了该.so文件pybind11_add_module,其中安装了所有依赖项(例如 OpenCV、Protobuf 等库)。该.so文件在此开发环境中运行良好。我可以正确运行import sys; sys.path.append('.'); import openvslam_python;和使用绑定函数。但是,我想将该.so文件作为 Python 包发送。
问题是,当我运行python3 setup.py sdist bdist_wheel并尝试wheel在另一个环境(没有安装的依赖项)上安装结果时,它说找不到依赖项的.so文件。例如,它输出以下错误(在 Docker 容器中):
>>> import sys
>>> sys.path.append('.')
>>> import openvslam_python
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: libopenvslam.so: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种方法将 PyBind11 绑定的依赖项与 CMake(或者可能在脚本内setup.py)捆绑在一起,以便能够在没有安装任何依赖项的环境中安装它们。这样,我可以使用简单的pip install …
我有一张像这样的图像,它只是黑白的:
我只想使用 获取带有边框的cv2.floodfill图像的被淹没区域,如下所示(请原谅我的绘画技巧):
这是我当前的代码:
# Copy the image.
im_floodfill = cv2.resize(actual_map_image, (500, 500)).copy()
# Floodfill from point (X, Y)
cv2.floodFill(im_floodfill, None, (X, Y), (255, 255, 255))
# Display images.
cv2.imshow("Floodfilled Image", im_floodfill)
cv2.waitKey(0)
Run Code Online (Sandbox Code Playgroud)
我得到的输出等于原始图像。我怎样才能只得到有边界的洪水区域?
编辑:我想从“竞技场”内的任何白点进行洪水填充,例如图像中的红点(X,Y)。我希望只有竞技场内小圆圈的外边界和外墙的内边界。
EDIT2:我已经完成了一半:
# Resize for test purposes
actual_map_image = cv2.resize(actual_map_image, (1000, 1000))
actual_map_image = cv2.cvtColor(actual_map_image, cv2.COLOR_BGR2GRAY)
h, w = actual_map_image.shape[:2]
flood_mask = np.zeros((h+2, w+2), dtype=np.uint8)
connectivity = 8
flood_fill_flags = (connectivity | cv2.FLOODFILL_FIXED_RANGE | cv2.FLOODFILL_MASK_ONLY | 255 << 8) …Run Code Online (Sandbox Code Playgroud) python ×2
cmake ×1
docker ×1
e2e-testing ×1
gitlab-ci ×1
opencv ×1
pybind11 ×1
selenium ×1
unit-testing ×1