2016-05-03 85 views
13

ho recentemente aggiornato per TeamCity 9.1.6 per eseguire i miei nuovi test di unità in base a NUnit 3.2.1. Ma ora sto avendo problemi durante l'esecuzione delle prove:NUnit 3.2.1 + TeamCity: Impossibile caricare il file o l'assembly 'nunit.framework'

ho selezionato l'esecutore NUnit3 in passi di compilazione, configurato di conseguenza:

Build step configuration

Quando si costruisce, ottengo un errore: "Could non caricare file o assembly 'nunit.framework' o una delle sue dipendenze.Il sistema non riesce a trovare il file specificato. ".

Build log

tutto dovrebbe andare bene, i percorsi vanno bene, l'assemblaggio è nel percorso del montaggio di prova, tutto è costruito in configurazione AnyCPU. C'è anche l'errore che afferma che la versione di NUnit non è una versione di rilascio, che penso sia una cazzata, è una versione sul sito web di NUnit. E l'errore non sembra rompere nulla (era presente anche quando ho avuto un errore prima dell'errore 'nunit.framework', e quando ho risolto quello, la build è andata oltre).

Qualsiasi vantaggio apprezzato!

AGGIORNAMENTO: Eseguire test utilizzando un conduttore della riga di comando ed eseguire lo stesso nunit3-console.exe funziona correttamente. Quindi immagino che questo sia un problema specifico per corridori NUnit. Ancora, i suggerimenti sono benvenuti su come risolvere questo problema.

UPDATE 2: Ho provato declassamento sia il pacchetto soluzione e il NUnit-console utilizzata da TeamCity a 3.0.0 - ancora, lo stesso risultato.

UPDATE 3: Come ho sospettato, supporto TeamCity confermato che il messaggio di "versione NUnit non essere supportato" è un guasto, e non dovrebbe pregiudicare nulla.

+1

È ancora un problema con 10.x ed è un problema perché la compilazione fallisce. – Mukus

+0

Questo è triste. Comunque sto ancora usando efficacemente la soluzione alternativa. Non ho tempo per riconfigurare e provare la soluzione no-workaround. –

risposta

4

Dopo una lunga discussione via email con il supporto tecnico di TeamCity siamo arrivati ​​a una soluzione. Mi è stato comunicato che hanno risolto questo problema nella prossima versione di TC10 (che arriverà da qualche parte alla fine di giugno 2016) e che per ora ci sono un paio di soluzioni alternative che risolveranno questo problema.

Ho provato il numero due e ha funzionato per me.

  1. test eseguito solo nelle directory nidificate relativi alla directory di cassa (per esempio si poteva copiare prima)

  2. Aggiungere un parametro di configurazione di generazione nunit_use_project_file-False:

    Edit Parameter popup

    Cioè, sono andato alla mia costruzione di test e progetti in esecuzione, sono andato nella sezione Parametri e ho aggiunto il nuovo parametro "nunit_use_project_file" come False. I test sono ora in corso sotto NUnit3 build step runner.

+0

Stavo ottenendo lo stesso errore e la soluzione numero 2 ha funzionato per me. Ma ora dopo l'aggiornamento a teamcity 10.0.1, questo errore ritorna e non siamo in grado di eseguire nessuno dei test. Qualche idea? – sam

+1

@sam prova la risposta in questo [collegamento] (http://stackoverflow.com/a/3668371/354277)? – Mathew

+0

@sam Suggerirei di provare a contattare il supporto di TeamCity. Hanno impiegato un giorno o due per rispondere, ma hanno aiutato. –

24

Ho avuto lo stesso problema con TeamCity 10.0.1 (build 42078) e NUnit 3.4.1. E si è rivelata completamente colpa mia. Sto postando qui come qualcun altro può incappare nello stesso problema e questo può salvarli un po 'di tempo.

Si è scoperto che il problema era nell'impostazione "Run tests from: " nella configurazione di generazione.

enter image description here

ho avuto **\*.Test.dll. Questo è stato accidentalmente raccogliendo DLL per le directory \obj\**\ (dove non è presente nunit.framework.dll). Una volta modificata l'impostazione su **\bin\%BuildConfiguration%\*.test.dll, tutto funziona correttamente.

Nota:% BuildConfiguration% è un parametro che specifica la configurazione di build preferita sul TC (come Debug/Release/CIBuild etc.)

0

Se non si dispone già di Nunit3 e Nunit.Console (Runner) nel tuo file packages.config dovresti "installarlo" sul tuo progetto usando il Gestore pacchetti.

Quindi seguire le istruzioni in questa altra risposta sulla creazione di un passaggio di "rilevamento automatico" per Nunit.ConsoleRunner. https://stackoverflow.com/a/38862220/3794873