Files
DotNetAngular/README.md
2025-10-16 20:51:15 +00:00

98 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# .NET + Angular Application Template
This project is a full-stack web application Template combining **ASP.NET Core** for the backend and **Angular** for the frontend.
## 🛠️ Technologies Used
- **Backend:** ASP.NET Core (.NET 9)
- **Frontend:** Angular
- **API Documentation:** Swagger (Swashbuckle)
## 🚀 Getting Started
### Prerequisites
- [.NET 9 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/9.0)
- [Node.js (LTS)](https://nodejs.org/)
- [Angular CLI ](https://angular.dev/)
### 🔧 Setup Instructions
1. **Install Angular dependencies**
⚠️ **Before starting the application for the first time**, run the following command in the `ClientApp` directory:
```bash
cd src/ClientApp
npm install
```
2. **Run the application**
Go back to the API folder and start the backend server:
```bash
cd src/API
dotnet run --launch-profile angular_dev
```
3. **Access the app**
- Angular frontend: [http://localhost:44492](http://localhost:44492)
- Swagger UI (API docs): [http://localhost:5184/swagger](http://localhost:5184/swagger)
---
## 🧪 Angular-Tests ausführen (Wie mache ich Tests in Angular?)
Die Angular-Frontend-Tests sind mit Karma + Jasmine eingerichtet. Alle Testdateien enden auf `.spec.ts` und liegen neben den jeweiligen Komponenten/Services im Ordner `src/ClientApp/src/`.
### Schnellstart
1. Abhängigkeiten installieren (falls noch nicht erledigt):
```bash
cd src/ClientApp
npm install
```
2. Tests im Watch-Modus starten (öffnet den Browser, ideal für Entwicklung):
```bash
npm test
```
### Headless/CI und Coverage
- Einmalige Testausführung mit Coverage-Bericht (headless):
```bash
cd src/ClientApp
npm run test:coverage
```
Der Coverage-Report wird unter `src/ClientApp/coverage/` erzeugt (HTML-Report in `index.html`).
- CI-freundliche Ausführung in Chrome Headless inklusive Coverage:
```bash
cd src/ClientApp
npm run test:ci
```
Hinweis: Für Headless-Tests muss eine Chrome/Chromium-Laufzeit auf der Maschine vorhanden sein.
### Wo schreibe ich Tests?
- Komponenten: `src/app/components/<name>/<name>.component.spec.ts`
- Services: `src/app/services/<name>.service.spec.ts`
- App-Komponenten: `src/app/app.component.spec.ts`
Beispiele sind bereits im Projekt vorhanden (z. B. `gitea.service.spec.ts`, `about-me.component.spec.ts`).
### Nützliche Tipps
- Testbefehle (npm Scripts) befinden sich in `src/ClientApp/package.json`:
- `npm test` Watch-Modus mit Browser
- `npm run test:coverage` Headless, einmalig, mit Coverage
- `npm run test:ci` Headless, ohne Watch, mit Coverage (für CI)
- Die Angular-CLI liest die Testkonfiguration aus `angular.json` (Target `test`) und `tsconfig.spec.json`.
- Falls Sie auf Servern ohne GUI testen: Verwenden Sie die Headless-Skripte (`test:ci`/`test:coverage`).