跳到主要内容
版本号:5.x (Latest)

End to End testing

Testing the integrity of React components by publishing in a private registry

The final stage of a react component is when it is being published and distributed. How can I ensure my packages won’t crash in production? This talk will help you to test your React components by publishing them to a private registry and running End-to-End tests against them.

End to End and Verdaccio

Some projects organize packages in multi-packages repositories or monorepos. End to End testing is a topic that usually is only relevant for User Interfaces, but from a Node.js perspective, publishing packages also need to be tested.

Such approach has been really hard to achieve considering:

  • Populate canary packages on public services seems not to be a good idea
  • Some self-hosted OSS registries are too heavy
  • Offline environments (private networks)

Verdaccio is a lightweight registry with zero-configuration that fits perfectly in any E2E + CI workflow.

Implementation

目前还没有好的方案,每个实现似乎都是针对各自项目的,您可以在以下主题中查看其中一些 点击此处

Examples in Open Source

The following projects have examples using Verdaccio in Open Source

Bash Examples

This is the most simple example using Verdaccio in a bash script (extracted from create-react-app).

#!/bin/sh

set -e

local_registry="http://0.0.0.0:4873"

# start local registry
tmp_registry_log=`mktemp`
sh -c "mkdir -p $HOME/.config/verdaccio"
sh -c "cp --verbose /config.yaml $HOME/.config/verdaccio/config.yaml"
sh -c "nohup verdaccio --config $HOME/.config/verdaccio/config.yaml &>$tmp_registry_log &"
# wait for `verdaccio` to boot
grep -q 'http address' <(tail -f $tmp_registry_log)
# login so we can publish packages
sh -c "npm-auth-to-token -u test -p test -e test@test.com -r $local_registry"
# Run nmp command
sh -c "npm --registry $local_registry publish"

Docker示例

Programtically Examples

Verdaccio module

Via CLI:

Node.js child_process examples

Example repositories