mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-10-27 07:52:24 +00:00
Add Dockerfile and script for containerized Playwright testing
- Add `Dockerfile` based on `mcr.microsoft.com/playwright:v1.57.0-jammy`. - Add `scripts/run-playwright-docker.sh` to build and run the container with volume mounts. - Add `.dockerignore` to prevent host `node_modules` from corrupting the build. - Update `README.md` with usage instructions.
This commit is contained in:
1 parent
cef2de32e4
commit
a9cef919a8
4 files changed
+71
No files matched your search
@@ -0,0 +1,7 @@
|
|||||||
|
node_modules
|
||||||
|
.git
|
||||||
|
.gitignore
|
||||||
|
artifacts
|
||||||
|
Dockerfile
|
||||||
|
scripts
|
||||||
|
test-results
|
||||||
+18
@@ -0,0 +1,18 @@
|
|||||||
|
# Base image matching the Playwright version in package.json
|
||||||
|
FROM mcr.microsoft.com/playwright:v1.57.0-jammy
|
||||||
|
|
||||||
|
# Set working directory
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Copy package files
|
||||||
|
COPY package.json package-lock.json ./
|
||||||
|
|
||||||
|
# Install dependencies
|
||||||
|
# We use npm ci for a clean, deterministic install
|
||||||
|
RUN npm ci
|
||||||
|
|
||||||
|
# Copy the rest of the application source code
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# Default command
|
||||||
|
CMD ["npm", "run", "test:visual"]
|
||||||
@@ -139,6 +139,23 @@ http://localhost:8000
|
|||||||
- **Run DM integration tests**: `npm run test:dm:integration`
|
- **Run DM integration tests**: `npm run test:dm:integration`
|
||||||
- **Run headless E2E tests**: `npm run test:e2e`
|
- **Run headless E2E tests**: `npm run test:e2e`
|
||||||
|
|
||||||
|
### Running Tests in Docker
|
||||||
|
|
||||||
|
To run Playwright tests in a consistent containerized environment, use the provided Docker script:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./scripts/run-playwright-docker.sh [command]
|
||||||
|
```
|
||||||
|
|
||||||
|
- **Default**: Runs `npm run test:visual`.
|
||||||
|
- **Custom command**: Pass any command as an argument, e.g., `./scripts/run-playwright-docker.sh npm run test:e2e`.
|
||||||
|
|
||||||
|
The script:
|
||||||
|
1. Builds the `bitvid-playwright` Docker image (based on `mcr.microsoft.com/playwright`).
|
||||||
|
2. Mounts the current directory to `/app` (allowing source changes to be reflected immediately).
|
||||||
|
3. Uses an anonymous volume for `/app/node_modules` to preserve the container's Linux-specific dependencies.
|
||||||
|
4. Outputs test artifacts to `artifacts/test-results` (accessible on the host).
|
||||||
|
|
||||||
### Visual Regression Debugging
|
### Visual Regression Debugging
|
||||||
|
|
||||||
Visual regression tests (`test:visual`) are configured to retain screenshots, videos, and traces when they fail. These artifacts are stored in the `artifacts/test-results` directory.
|
Visual regression tests (`test:visual`) are configured to retain screenshots, videos, and traces when they fail. These artifacts are stored in the `artifacts/test-results` directory.
|
||||||
|
|||||||
Executable
+29
@@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Build the Docker image
|
||||||
|
echo "Building Docker image bitvid-playwright..."
|
||||||
|
docker build -t bitvid-playwright .
|
||||||
|
|
||||||
|
# Check if arguments are provided, default to "npm run test:visual" if not
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
CMD="npm run test:visual"
|
||||||
|
else
|
||||||
|
CMD="$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Running: $CMD"
|
||||||
|
|
||||||
|
# Run the container
|
||||||
|
# - --rm: Remove container after exit
|
||||||
|
# - -it: Interactive terminal
|
||||||
|
# - --ipc=host: Recommended for Playwright to avoid memory issues
|
||||||
|
# - -v $(pwd):/app: Mount current directory to /app for live code updates and artifacts
|
||||||
|
# - -v /app/node_modules: Anonymous volume to preserve container's node_modules (prevents host node_modules from overriding)
|
||||||
|
# - -w /app: Set working directory
|
||||||
|
docker run --rm -it --ipc=host \
|
||||||
|
-v "$(pwd):/app" \
|
||||||
|
-v /app/node_modules \
|
||||||
|
-w /app \
|
||||||
|
bitvid-playwright \
|
||||||
|
$CMD
|
||||||
Reference in new issue
Block a user