All Projects → Vimjas → vim-testbed

Vimjas / vim-testbed

Licence: other
Docker image for testing Vim plugins

Programming Languages

shell
77523 projects
Makefile
30231 projects
Dockerfile
14818 projects
Vim Script
2826 projects

Projects that are alternatives of or similar to vim-testbed

service-ui
UI service for Report Portal
Stars: ✭ 47 (+17.5%)
Mutual labels:  test-automation, testing-tools
extensiveautomation-server
Extensive Automation server
Stars: ✭ 19 (-52.5%)
Mutual labels:  test-automation, testing-tools
toradocu
Toradocu - automated generation of test oracles from Javadoc documentation
Stars: ✭ 39 (-2.5%)
Mutual labels:  test-automation, testing-tools
educhain
an instructional purpose blockchain.
Stars: ✭ 21 (-47.5%)
Mutual labels:  test-automation, testing-tools
rfswarm
Robot Framework Swarm
Stars: ✭ 68 (+70%)
Mutual labels:  test-automation, testing-tools
karate
Test Automation Made Simple
Stars: ✭ 6,384 (+15860%)
Mutual labels:  test-automation, testing-tools
Telegraf-Test
Telegraf Test - Simple Test ToolKit of Telegram Bots
Stars: ✭ 22 (-45%)
Mutual labels:  test-automation, testing-tools
carina
Carina automation framework: Web, Mobile, API, DB etc testing...
Stars: ✭ 652 (+1530%)
Mutual labels:  test-automation, testing-tools
mbt-bundle
A core library for Sicope Model, a Model-Based Testing tool for web application.
Stars: ✭ 19 (-52.5%)
Mutual labels:  test-automation, testing-tools
software-testing-resource-pack
Various files useful for manual testing and test automation etc.
Stars: ✭ 38 (-5%)
Mutual labels:  test-automation, testing-tools
main
Mocks Server monorepo
Stars: ✭ 109 (+172.5%)
Mutual labels:  test-automation, testing-tools
karate-runner
VSCode Extension for Karate
Stars: ✭ 23 (-42.5%)
Mutual labels:  test-automation, testing-tools
fast-test
fast-test是基于Java的自动化测试工具集合,包含自动测试平台(后端Vue),自动测试框架,可以帮助测试人员快速构建各类测试工具和自动化测试框架。请点星支持!
Stars: ✭ 112 (+180%)
Mutual labels:  test-automation, testing-tools
jest-gql
✅🚀GraphQL based tests for Jest and Apollo
Stars: ✭ 33 (-17.5%)
Mutual labels:  test-automation, testing-tools
qt monkey
Tool for testing Qt based applications
Stars: ✭ 39 (-2.5%)
Mutual labels:  test-automation, testing-tools
AutoMeter-API
AutoMeter-API是一款针对分布式服务,微服务API功能和性能一体的自动化测试平台,一站式解决应用,服务,API,环境管理,用例,条件,测试场景,计划,测试报告,功能/性能测试兼容支持的一体化工作平台
Stars: ✭ 105 (+162.5%)
Mutual labels:  test-automation, testing-tools
sandboni-core
Sandboni - Java test optimization library which reduces test execution time without compromising quality
Stars: ✭ 27 (-32.5%)
Mutual labels:  test-automation, testing-tools
test junkie
Highly configurable testing framework for Python
Stars: ✭ 72 (+80%)
Mutual labels:  test-automation, testing-tools
IO-TESTER
A functional test framework
Stars: ✭ 32 (-20%)
Mutual labels:  test-automation, testing-tools
vm-automation
VirtualBox automation using Python
Stars: ✭ 1 (-97.5%)
Mutual labels:  test-automation, testing-tools

Vim Testbed

Build Status

Because unit testing a Vim plugin is a pain in the ass.

vader.vim provides a pretty straightforward way to test Vim plugins. But, you'll only be testing on the version of Vim you have installed. Then there's the issue of running automated tests with CI where you have to either:

  • Build Vim from source which takes an eternity, then run your tests.
  • Use the version that comes pre-installed which means you're only testing your plugin's ability to run on some specific, possibly older version.

With this base image, you can build the versions you need and reuse them in future tests.

Usage

The README is a work in progress. Take a look in the example directory and ubuntu-vims.

You will need to create your own Dockerfile, build an image, then push it to your Docker Hub repository.

Dockerfile

FROM testbed/vim:latest

RUN install_vim -tag v7.3.429 -name vim73 -py -build \
                -tag v7.4.052 -name vim74-trusty -build \
                -tag master -py2 -py3 -ruby -lua -build \
                -tag neovim:v0.2.0 -py2 -py3 -ruby -build \
                -tag neovim:master -py2 -py3 -ruby -build

The install_vim script builds one or more versions of Vim that you would like to use for testing. Each version should be terminated with a -build flag to tell the script to start a build.

The following flags are available for each build:

Flag Description
-tag The Vim/Neovim release. It should be a valid tag/commit hash, with an optional GitHub repo prefix. E.g. master, neovim:master, neovim:v0.1.7, or username/neovim:branch.
-flavor The Vim flavor. Either vim (default) or neovim. If empty, it will be detected from -tag.
-name The name to use for the binary's symlink. It defaults to $FLAVOR-$TAG, e.g. vim-master or neovim-v0.1.7.
-py Build with Python 2.
-py3 Build with Python 3.
-ruby Build with Ruby.
-lua Build with Lua (implied with Neovim 0.2.1+).

With -flavor vim (the default), all other arguments (up until -build) get passed through to ./configure, e.g. --disable-FEATURE etc.

Build

docker build -t "your/repository" .

From here you can run your tests locally (as described below), push it to your Docker Hub repository, or setup an automated build.

Run

docker run -it --rm -v $PWD:/testplugin -v $PWD/test:/home "your/repository" vim74 '+Vader! test/*'

The entry point for the container is a script that runs the named Vim version. In this case vim74. Arguments after the name is passed to Vim.

The entry point script prefixes your arguments with -u /home/vimtest/vimrc -i NONE. They can be overridden with your arguments.

Setup

The base image is created with automated testing in mind. It is not meant to be built every time you run tests. An unprivileged user vimtest is used to run Vim to prevent files from being written back to your work directory. This means that it won't be able to download/install plugins into a mapped volume.

To deal with this, your test vimrc could add known paths within the container to rtp, and your Dockerfile could install the plugins into that location.

/rtp.vim

This image provides a helper script that should be sourced at the top of your vimrc:

source /rtp.vim

It will add /home/vimtest/vim and /home/vimtest/vim/after to the runtime path, and search for plugins in /home/vimtest/plugins.

Volumes

Two volumes are provided:

Volume Description
/home The user directory.
/testplugin The directory for your plugin.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].