Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questa guida introduttiva si apprenderà come creare un flusso di lavoro GitHub per testare il codice sorgente .NET. Il test automatico del codice .NET all'interno di GitHub è definito integrazione continua (CI), dove le richieste di pull o le modifiche al codice sorgente attivano i flussi di lavoro per essere eseguiti. Oltre alla compilazione del codice sorgente, il test garantisce che il codice sorgente compilato funzioni come previsto dall'autore. Più spesso, gli unit test fungono da ciclo di feedback immediato per garantire la validità delle modifiche apportate al codice sorgente.
Prerequisiti
- Un account GitHub.
- Un repository di codice sorgente .NET.
Creare un file del flusso di lavoro
Nel repository GitHub aggiungere un nuovo file YAML alla directory .github/workflows . Scegliere un nome di file significativo, un elemento che indicherà chiaramente cosa deve fare il flusso di lavoro. Per altre informazioni, vedere File del flusso di lavoro.
Importante
GitHub richiede che i file di composizione del flusso di lavoro vengano inseriti nella directory .github/workflows .
I file del flusso di lavoro definiscono in genere una composizione di una o più Azioni GitHub tramite il jobs.<job_id>/steps[*]
. Per altre informazioni, vedere sintassi del flusso di lavoro per GitHub Actions.
Creare un nuovo file denominato build-and-test.yml, copiare e incollare il contenuto YML seguente:
name: build and test
on:
push:
pull_request:
branches: [ main ]
paths:
- '**.cs'
- '**.csproj'
env:
DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
jobs:
build-and-test:
name: build-and-test-${{matrix.os}}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- uses: actions/checkout@v3
- name: Setup .NET Core
uses: actions/setup-dotnet@v3
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Install dependencies
run: dotnet restore
- name: Build
run: dotnet build --configuration Release --no-restore
- name: Test
run: dotnet test --no-restore --verbosity normal
Nella composizione del flusso di lavoro precedente:
Viene definito il nome
name: build and test
, "compilazione e test" verrà visualizzato nei badge di stato del flusso di lavoro.name: build and test
Il
on
nodo indica gli eventi che attivano il flusso di lavoro:on: push: pull_request: branches: [ main ] paths: - '**.cs' - '**.csproj'
- Attivato quando un
push
opull_request
si verifica nel ramomain
in cui i file modificati terminano con le estensioni .cs o .csproj.
- Attivato quando un
Il
env
nodo definisce le variabili di ambiente denominate (env var).env: DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
- Alla variabile
DOTNET_VERSION
di ambiente viene assegnato il valore'6.0.401'
. In seguito viene fatto riferimento alla variabile di ambiente per specificare ladotnet-version
dellaactions/setup-dotnet@v3
GitHub Action.
- Alla variabile
Il
jobs
nodo compila i passaggi da eseguire per il flusso di lavoro.jobs: build-and-test: name: build-and-test-${{matrix.os}} runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macOS-latest] steps: - uses: actions/checkout@v3 - name: Setup .NET Core uses: actions/setup-dotnet@v3 with: dotnet-version: ${{ env.DOTNET_VERSION }} - name: Install dependencies run: dotnet restore - name: Build run: dotnet build --configuration Release --no-restore - name: Test run: dotnet test --no-restore --verbosity normal
- Esiste un singolo lavoro, denominato
build-<os>
, dove<os>
è il nome del sistema operativo proveniente dastrategy/matrix
. Gliname
elementi eruns-on
sono dinamici per ogni valore inmatrix/os
. Questa operazione verrà eseguita nelle versioni più recenti di Ubuntu, Windows e macOS. - GitHub
actions/setup-dotnet@v3
Action viene usato per configurare .NET SDK con la versione specificata dallaDOTNET_VERSION
variabile di ambiente. - Viene chiamato il
dotnet restore
comando . - Viene chiamato il
dotnet build
comando . - Viene chiamato il
dotnet test
comando .
- Esiste un singolo lavoro, denominato
Creare un distintivo di stato del flusso di lavoro
Per i repository GitHub è comune avere un file README.md nella radice della directory del repository. Analogamente, è bello segnalare lo stato più recente per vari flussi di lavoro. Tutti i flussi di lavoro possono generare una notifica di stato, visivamente accattivante all'interno del file README.md . Per aggiungere la notifica relativa allo stato del flusso di lavoro:
Nel repository GitHub, seleziona l'opzione di navigazione Azioni.
Tutti i flussi di lavoro del repository vengono visualizzati sul lato sinistro. Seleziona il flusso di lavoro desiderato e il pulsante con i puntini di sospensione (...).
- Il pulsante con i puntini di sospensione (...) espande le opzioni di menu per il flusso di lavoro selezionato.
Selezionare l'opzione di menu Crea badge di stato.
Selezionare il pulsante Copia lo stato del badge in Markdown.
Incollare il markdown nel file README.md , salvare il file, eseguire il commit ed eseguire il push delle modifiche.
Per ulteriori informazioni, vedere Aggiungere un indicatore sullo stato del flusso di lavoro.
Notifica di stato del flusso di lavoro di test di esempio
Effimero | Fallito | Nessun stato |
---|---|---|
|
|
|
Vedere anche
- dotnet restore
- comando di build dotnet
- dotnet test
- Eseguire unit test delle app .NET
- azioni/checkout
- actions/setup-dotnet