Convenzioni di denominazione per .net C # Progetti di test unitari per una migliore selezione [chiusa]

0

Attualmente utilizzo il seguente schema di denominazione per i miei progetti di test unitari .. se ho un progetto "MyApp", avrò ...

-- MyApp
-- MyApp.Tests

Vedo che questa è una pratica abbastanza comune.

Ora, il problema è che se avessi un altro progetto MyApp.Common. Ora in Solution Explorer, i miei progetti sono ordinati

-- MyApp
-- MyApp.Common
-- MyApp.Common.Tests
-- MyApp.Tests

Quindi il mio MyApp.Tests non è più "vicino" al progetto principale che sta testando. Man mano che i progetti crescono, i test possono diventare confusi dappertutto,

So che non è una grande cosa, ma mi chiedo solo se qualcun altro l'ha incontrato e ha pensato a un altro modo?

Grazie in anticipo per eventuali suggerimenti.

    
posta peterc 22.11.2018 - 03:02
fonte

2 risposte

2

Dimenticando il problema dell'ordinamento per un momento, [ProjectName].Tests è lo schema di denominazione migliore. Indica chiaramente a quale progetto appartengono i test e segue l'approccio di denominazione generale del nome del sottodominio.

Ma come fai notare, questo porta a un po 'di problemi di ordinamento quando testi sia un dominio specifico che i suoi sottodomini.

Finora, ho risolto questo problema semplicemente utilizzando le cartelle di progetto nella soluzione.

MyApp (sln)
  - Api (folder)
      - MyApp.Api (csproj)
      - MyApp.Api.Tests (csproj)
  - Business (folder)
      - MyApp.Business (csproj)
      - MyApp.Business.Tests (csproj)
  - Database (folder)
      - MyApp.Database (csproj)
      - MyApp.Database.Tests (csproj)

Questo può essere troppo ingombrante per soluzioni eccessivamente grandi, ma non ho davvero avuto esperienza con > 15 soluzioni di progetto.

Il vantaggio di farlo è che mantieni lo schema di denominazione migliore invece di rinominare abilmente le cose per adattarle all'ordinamento (ma poi perdere le convenzioni di denominazione).

    
risposta data 22.11.2018 - 08:02
fonte
0

Mantenere costante la denominazione del progetto. vale a dire avere entrambe le parti di denominazione in ogni progetto.

Si sta tentando di omettere la seconda parte per il livello applicazione, ma a parte l'ordine diventa problematico quando si hanno più implementazioni dell'applicazione. ad esempio:

{application}.{component}
MyApp.WpfApp
MyApp.WebApp
MyApp.IosApp
MyApp.BusinessModels
MyApp.DataAccessLayer
etc

Potrebbe sembrare strano se hai solo un'implementazione. O anche quando ne hai più di uno, ma ognuno ha la sua soluzione.

Ma ricorda che questi nomi vengono utilizzati al di fuori della soluzione nei sistemi CI, nella segnalazione di bug e nei gestori di pacchetti, ecc. È bello avere lo stesso nome in tutto il percorso

    
risposta data 22.11.2018 - 14:22
fonte

Leggi altre domande sui tag