Help me een GitHub Actions workflow maken voor geautomatiseerd testen in meerdere omgevingen.
description
Het automatiseren van tests in meerdere omgevingen vermindert het risico op omgevingsspecifieke bugs, zorgt voor consistentie en versnelt het ontwikkelproces.
prompt
try_prompt
Ik wil een GitHub Actions workflow ontwerpen die geautomatiseerde tests uitvoert in verschillende omgevingen om consistente werking te garanderen. Omgevingen om te includere ... more
generate_helper
...
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Hier is een voorbeeld van een GitHub Actions workflow die geautomatiseerde unit tests uitvoert met Jest in de ontwikkelomgeving bij elke push. Deze workflow kan verder worden uitgebreid voor andere omgevingen of tests indien gewenst.
```yaml
name: CI
on:
push:
branches:
- main
- develop
jobs:
test:
name: Testen in ontwikkelomgeving
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '16' # Pas de Node.js-versie aan indien nodig
- name: Install dependencies
run: npm install
- name: Voer unit tests uit met Jest
run: npm test -- --testNamePattern="Unit"
env:
NODE_ENV: development
```
**Uitleg:**
- De workflow wordt getriggerd bij elke push naar de `main` of `develop` tak.
- Het job voert de tests uit op een Ubuntu machine.
- Het installeert Node.js en dependencies.
- Het voert de tests uit met Jest, specifiek gericht op unit tests (je kunt de testNamePattern aanpassen naar jouw teststructuur).
**Aanpassingen:**
- Voeg extra jobs toe voor andere omgevingen (zoals staging of productie).
- Pas de `testNamePattern` aan om precies de gewenste testgevallen te selecteren.
- Configureer je Jest-testconfiguratie indien nodig voor een betere scheiding van testtypes.
provider: deepseek
model: deepseek-chat
Hier is een GitHub Actions workflow-configuratie voor geautomatiseerde Jest unit tests in een ontwikkelomgeving:
```yaml
name: CI
on: [push]
jobs:
test:
name: Unit Tests (Jest) - Ontwikkelomgeving
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x, 20.x]
steps:
- name: Code uitchecken
uses: actions/checkout@v4
- name: Node.js ${{ matrix.node-version }} instellen
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Dependencies installeren
run: npm ci
- name: Unit tests uitvoeren met Jest
run: npm test -- --coverage
- name: Test coverage uploaden
uses: codecov/codecov-action@v3
with:
file: ./coverage/lcov.info
```
**Belangrijke kenmerken:**
- **Triggers bij elke push** naar elke branch
- **Multi-Node.js versie testing** (18.x en 20.x) voor compatibiliteit
- **Dependency caching** voor snellere builds
- **Automatische test coverage** rapportage
- **Strikte npm ci** voor betrouwbare dependency installatie
**Aanbevolen package.json scripts:**
```json
{
"scripts": {
"test": "jest",
"test:watch": "jest --watch",
"test:coverage": "jest --coverage"
}
}
```
De workflow voert unit tests uit in een geïsoleerde ontwikkelomgeving en zorgt voor consistente werking across verschillende Node.js versies.

