Il progetto di Asset compute definisce un pattern che consente di creare ed eseguire facilmente prove sui lavoratori Asset compute.
I test dei lavoratori Asset compute vengono suddivisi in suite di test e, all’interno di ogni suite di test, uno o più casi di test affermano una condizione da testare.
La struttura dei test in un progetto Asset compute è la seguente:
/actions/<worker-name>/index.js
...
/test/
asset-compute/
<worker-name>/ <--- Test suite for the worker, must match the yaml key for this worker in manifest.yml
<test-case-1>/ <--- Specific test case
file.jpg <--- Input file (ie. `source.path` or `source.url`)
params.json <--- Parameters (ie. `rendition.instructions`)
rendition.png <--- Expected output file (ie. `rendition.path`)
<test-case-2>/ <--- Another specific test case for this worker
...
Ogni cast di test può avere i seguenti file:
file.<extension>
.link
)rendition.<extension>
params.json
validate
diff
comandomock-<host-name>.json
Questo test case afferma l'input con parametri (params.json
) per il file di input (file.jpg
) genera la rappresentazione PNG prevista (rendition.png
).
Elimina innanzitutto il file generato automaticamente simple-worker
test case su /test/asset-compute/simple-worker
poiché questo non è valido, poiché il nostro lavoratore non copia più semplicemente l’origine nella rappresentazione.
Crea una nuova cartella di test case in /test/asset-compute/worker/success-parameterized
per verificare la corretta esecuzione del processo di lavoro che genera una rappresentazione PNG.
In success-parameterized
, aggiungi il test file di input per questo caso di test e denominalo file.jpg
.
In success-parameterized
cartella, aggiungi un nuovo file denominato params.json
che definisce i parametri di input del lavoratore:
{
"size": "400",
"contrast": "0.25",
"brightness": "-0.50"
}
Questi sono gli stessi valori chiave trasmessi nel Definizione del profilo di Asset compute dello strumento di sviluppo, meno worker
chiave.
Aggiungi il previsto file di rappresentazione a questo caso di test e denominalo rendition.png
. Questo file rappresenta l'output previsto del processo di lavoro per l'input specificato file.jpg
.
Dalla riga di comando, esegui i test della directory principale del progetto eseguendo aio app test
Questo test case verifica che il lavoratore generi l'errore appropriato quando contrast
parametro impostato su un valore non valido.
Crea una nuova cartella di test case in /test/asset-compute/worker/error-contrast
per verificare un'esecuzione errata del lavoratore a causa di un errore contrast
valore del parametro.
In error-contrast
, aggiungi il test file di input per questo caso di test e denominalo file.jpg
. Il contenuto di questo file non è rilevante per questo test, deve solo esistere per superare il controllo "Origine danneggiata", al fine di raggiungere rendition.instructions
controlli di validità, che il test case convalida.
In error-contrast
cartella, aggiungi un nuovo file denominato params.json
che definisce i parametri di input del lavoratore con il contenuto:
{
"contrast": "10",
"errorReason": "rendition_instructions_error"
}
contrast
parametri per 10
, un valore non valido, poiché il contrasto deve essere compreso tra -1 e 1, per generare un RenditionInstructionsError
.errorReason
chiave del "motivo" associato all’errore previsto. Questo parametro di contrasto non valido genera il errore personalizzato, RenditionInstructionsError
, pertanto imposta il errorReason
al motivo di questo errore, oppurerendition_instructions_error
per affermare che è stato lanciato.Poiché non deve essere generata alcuna rappresentazione durante un’esecuzione errata, no rendition.<extension>
è necessario.
Esegui la suite di test dalla directory principale del progetto eseguendo il comando aio app test
I test case finali sono disponibili su Github all’indirizzo: