Condividi tramite


Procedura dettagliata: creazione di una linea di base per l'ambiente di sviluppo isolato

In questa procedura dettagliata viene illustrato come creare un progetto di database da sottoporre successivamente al controllo delle versioni. Il progetto di database contiene una definizione di schema che corrisponde a quella di un server di produzione. Prima di avviare il lavoro di sviluppo su questo progetto di database, si desidera creare una linea di base di qualità mediante l'impostazione di unit test del database, la definizione di un piano di generazione dati, la generazione di dati di test e l'esecuzione di tali test. Tramite l'esecuzione di test è possibile compilare e distribuire il database nell'ambiente di sviluppo isolato, inserire nel database dati generati ed eseguire unit test per presentare i risultati.

Di seguito sono elencate alcune delle attività illustrate nella procedura dettagliata:

  1. Personalizzazione delle impostazioni di distribuzione per l'ambiente di sviluppo isolato.

  2. Compilazione e distribuzione del database nell'ambiente di sviluppo isolato.

  3. Creazione di un piano di generazione dati e relativa personalizzazione per la generazione di dati di test più realistici.

  4. Definizione di uno unit test per una stored procedure contenuta nel progetto di database.

  5. Compilazione di dati di test e creazione ed esecuzione degli unit test.

  6. Condivisione degli unit test con il team di sviluppo tramite l'inserimento degli unit test nel controllo delle versioni come parte della soluzione.

Prerequisiti

Per definire unit test del database e per creare, modificare ed eseguire un piano di generazione dati, è necessario aver installato Visual Studio Premium o Visual Studio Ultimate e disporre dell'accesso al database di esempio AdventureWorks2008 per SQL Server 2008 (o del database di esempio AdventureWorks2008R2 per SQL Server 2008 R2). È inoltre necessario avere completato i passaggi in Procedura dettagliata: creazione di un ambiente di sviluppo isolato.

Per personalizzare le impostazioni di compilazione per l'ambiente di sviluppo isolato

  1. Se la soluzione AdvWorksSandbox è aperta in Esplora soluzioni, andare al passaggio 4.

  2. Scegliere Apri dal menu File e quindi Progetto/Soluzione.

    Verrà visualizzata la finestra di dialogo Apri progetto.

  3. Selezionare la soluzione AdvWorksSandbox e quindi scegliere Apri. Il percorso predefinito per questa soluzione è Documenti\Visual Studio 2010\Projects\AdvWorksSandbox.

    La soluzione AdvWorksSandbox verrà aperta in Esplora soluzioni.

  4. In Esplora soluzioni fare clic sul nodo AdvWorksSandbox.

  5. Scegliere Proprietà AdvWorksSandbox dal menu Progetto.

  6. Fare clic sulla scheda Distribuisci.

  7. Nell'elenco a discesa Configura impostazioni di distribuzione per selezionare Ambiente di sviluppo isolato.

    Nota

    Le impostazioni di distribuzione configurate per l'ambiente di sviluppo isolato vengono archiviate nel file con estensione user all'interno della cartella che contiene il progetto di database. Il file con estensione user non viene archiviato nel controllo della versione. Questa progettazione consente a ogni sviluppatore di configurare impostazioni per il proprio ambiente di sviluppo isolato.

  8. Fare clic su Modifica accanto a Connessione di destinazione.

    Verrà visualizzata la finestra di dialogo Proprietà connessione.

    È a questo punto possibile personalizzare la stringa di connessione per l'ambiente di sviluppo isolato locale. Il processo consigliato prevede che ogni sviluppatore del database aggiorni una copia privata del database in modo che le modifiche non possano influire negativamente sul resto del team. Quando lo sviluppatore ha eseguito il test delle modifiche ed è pronto a condividerle con il team, le modifiche vengono condivise tramite il sistema di controllo della versione centrale. In Procedura dettagliata: creazione di un ambiente di sviluppo isolato è stato impostato il nome del database di destinazione, ma non la connessione.

  9. Digitare o scegliere il nome del server da utilizzare per l'ambiente di sviluppo isolato. Per utilizzare ad esempio l'istanza locale, digitare (local).

    Nota importanteImportante

    Se si distribuisce il database di sviluppo isolato nello stesso server utilizzato per la distribuzione nella procedura dettagliata precedente (), si verificherà un errore in quanto il file è già stato creato. Questo errore può essere corretto modificando il parametro FILENAME nel file FileStreamDocuments.sqlfile.sql (o, per SQL Server 2008 R2, FileStreamDocuments2008R2.sqlfile.sql). Modificare il metodo affinché corrisponda al codice seguente: FILENAME = '$(DefaultDataPath)SandboxDocuments-IDE').

  10. Scegliere il tipo di autenticazione da utilizzare per connettersi al server database.

    Per impostazione predefinita, viene specificata l'autenticazione di Windows.

  11. Scegliere OK.

    Nella connessione di destinazione vengono visualizzate le informazioni di connessione.

  12. Scegliere Salva elementi selezionati dal menu File per salvare le modifiche apportate alle proprietà del progetto di database.

Per compilare e distribuire il database nell'ambiente di sviluppo isolato

  1. Scegliere Compila soluzione dal menu Compila.

    Il progetto di database verrà compilato e i risultati verranno visualizzati nella finestra Output.

  2. In Esplora soluzioni fare clic sul nodo AdvWorksSandbox.

  3. Scegliere Distribuisci NomeProgetto dal menu Compila. È inoltre possibile fare clic con il pulsante destro del mouse sul nodo AdvWorksSandbox e scegliere Distribuisci.

    Il progetto di database viene compilato, insieme a uno script di distribuzione, che successivamente viene distribuito nel server di sviluppo del database isolato specificato nelle proprietà del progetto di database.

    A questo punto, è possibile procedere alla generazione dei dati di test per l'ambiente di sviluppo isolato.

Genera dati di test

Dopo aver creato un database isolato rispetto a cui eseguire lo sviluppo, è necessario disporre di dati di test da utilizzare per gli unit test. Innanzitutto, creare un piano di generazione dati predefinito, quindi personalizzarlo per produrre dati più realistici. In questo esempio viene configurata la generazione dati solo per un subset delle tabelle e colonne del database. Si configurerà la generazione di dati per le tabelle Employee e StateProvince.

I dati originali inclusi nella tabella StateProvince non sono riservati. È pertanto possibile utilizzare i dati originali per popolare il database di sviluppo isolato.

È tuttavia necessario apportare le modifiche seguenti al piano di generazione predefinito per la tabella Employee:

  • Il Titolo deve essere uno degli elementi seguenti: Developer, Sr. Developer, Tester, Sr. Tester, Project Manager, Sales Associate o Sr. Sales Associate.

  • Il valore di BirthDate deve corrispondere ad almeno 18 anni prima e non essere anteriore al 1° gennaio 1930. La specifica corrisponde al vincolo nella colonna del database.

  • Il valore di Marital Status deve essere "M" o "S".

  • Il valore di Gender deve essere "M" o "F".

  • Il valore di HireDate deve essere compreso tra il 1° gennaio 2000 e la data corrente.

  • VacationHours deve avere una distribuzione tipica in un intervallo compreso tra -10 e 160.

  • Il valore di ModifiedDate deve essere compreso tra il 1° gennaio 2000 e la data corrente. La maggior parte dei record risulteranno aggiornati di recente.

  • I valori di AdditionalContactInfo e Demographics nella tabella Person devono derivare dal database AdventureWorks di origine.

Per creare un piano di generazione dati

  1. In Esplora soluzioni espandere il nodo AdvWorksSandbox e fare clic sulla cartella Piani di generazione dati.

  2. Scegliere Aggiungi nuovo elemento dal menu Progetto.

    Verrà visualizzata la finestra di dialogo Aggiungi nuovo elemento.

  3. Nell'elenco Categorie scegliere Piano di generazione dati.

  4. Nell'elenco Modelli fare clic su Piano di generazione dati.

  5. Nella casella Nome digitare AWGenPlan.dgen e fare clic su Aggiungi.

    Un piano di generazione dati denominato AWGenPlan verrà aggiunto al progetto di database e aperto nell'editor. Lo schema di database verrà importato nel piano di generazione dati.

    A questo punto, è possibile modificare AWGenPlan per generare altri dati di test realistici.

Per limitare la generazione dei dati alle tabelle di interesse

  1. Fare clic con il pulsante destro del mouse sul piano di generazione dati e quindi scegliere Escludi tutte le tabelle dalla generazione dei dati.

  2. Nel piano di generazione dati selezionare le caselle di controllo per le tabelle seguenti: HumanResources.Employee, Person.Person, Person.CountryRegion e Person.StateProvince.

    Definire quindi il piano di generazione dati per la tabella StateProvince.

Per definire il piano di generazione dati per la tabella StateProvince

  1. Fare clic su [Person].[StateProvince] nel piano di generazione dati.

  2. Nel riquadro Dettagli colonna scegliere StateProvinceCode e impostare il campo Generatore su Generatore associato a dati.

    Questo passaggio indica che si desidera popolare la colonna con i risultati di una query.

  3. Scegliere Finestra Proprietà dal menu Visualizza.

  4. Nella sezione Generatore della finestra Proprietà, nella proprietà Connection Information, scegliere la connessione che corrisponde al database dal quale è stato importato lo schema di database in una procedura precedente.

    Con questo passaggio si specifica la connessione di database che si desidera utilizzare per eseguire la query tramite la quale verranno generati i dati per questa colonna.

  5. Nella sezione Generatore della finestra Proprietà, nella proprietà Select Query, impostare la stringa di query su SELECT [StateProvinceCode] FROM [Person].[StateProvince].

  6. Nel riquadro Dettagli colonna scegliere Data modificata.

  7. Nella sezione Generatore della finestra Proprietà impostare la proprietà Max sulla data corrente poiché non è possibile che i record siano stato modificati in una data successiva.

  8. Nella sezione Generatore della finestra Proprietà impostare la proprietà Min su 1/1/2000 12:00:00 AM. Ai fini di questo esempio si presuppone che la società abbia iniziato a raccogliere i dati all'inizio dell'anno 2000.

    A questo punto, è possibile specificare il piano di generazione dati per la tabella Person.

Per definire il piano di generazione dati per la tabella Person

  1. Fare clic su [Person].[Person] nel piano di generazione dati.

  2. Nel riquadro Dettagli colonna scegliere PersonType e impostare il campo Generatore su RegularExpression.

  3. Nella sezione Generatore della finestra Proprietà impostare la proprietà Expression su (GC|SP|EM|IN|VC|SC).

  4. Nel riquadro Dettagli colonna scegliere AdditionalContactInfo e impostare il campo Generatore su Generatore associato a dati.

    Con questo passaggio si indica che si intende inserire nella colonna i risultati di una query.

  5. Scegliere Finestra Proprietà dal menu Visualizza.

  6. Nella sezione Generatore della finestra Proprietà, nella proprietà Connection Information, scegliere la connessione che corrisponde al database dal quale è stato importato lo schema di database in una procedura precedente.

    Con questo passaggio si specifica la connessione di database che si desidera utilizzare per eseguire la query tramite la quale verranno generati i dati per questa colonna.

  7. Nella sezione Generatore della finestra Proprietà, nella proprietà Query Select Query impostare la stringa di query su SELECT * FROM [Person].[Person].

  8. Nel riquadro Dettagli colonna, nel campo Output generatore per AdditionalContactInfo, fare clic su [AdditionalContactInfo].

    Con questo passaggio si seleziona la colonna nel gruppo di risultati che si desidera associare a questa colonna.

  9. Nel riquadro Dettagli colonna scegliere Demographics e impostare il campo Generatore su Generatore associato a dati.

    Con questo passaggio si indica che si intende inserire nella colonna i risultati di una query.

  10. Scegliere Finestra Proprietà dal menu Visualizza.

  11. Nella sezione Generatore della finestra Proprietà, nella proprietà Connection Information, scegliere la connessione che corrisponde al database dal quale è stato importato lo schema di database in una procedura precedente.

    Con questo passaggio si specifica la connessione di database che si desidera utilizzare per eseguire la query tramite la quale verranno generati i dati per questa colonna.

  12. Nella sezione Generatore della finestra Proprietà, nella proprietà Query Select Query impostare la stringa di query su SELECT * FROM [Person].[Person].

  13. Nel riquadro Dettagli colonna, nel campo Output generatore per Demographics fare clic su [Demographics].

    Con questo passaggio si seleziona la colonna nel gruppo di risultati che si desidera associare a questa colonna.

  14. Nel riquadro Dettagli colonna scegliere Data modificata.

  15. Nella sezione Generatore della finestra Proprietà impostare la proprietà Max sulla data corrente poiché non è possibile che i record siano stato modificati in una data successiva.

  16. Nella sezione Generatore della finestra Proprietà impostare la proprietà Min su 1/1/2000 12:00:00 AM. Ai fini di questo esempio si presuppone che la società abbia iniziato a raccogliere i dati all'inizio dell'anno 2000.

    A questo punto, si procederà a specificare il piano di generazione dati per la tabella Employee.

Per definire il piano di generazione dati per la tabella Employee

  1. Fare clic su [HumanResources].[Employee] nel piano di generazione dati.

  2. Nel riquadro Dettagli colonna scegliere JobTitle e impostare il campo Generatore su RegularExpression.

  3. Nella sezione Generatore della finestra Proprietà impostare la proprietà Expression su (Developer|Sr\. Developer|Tester|Sr\. Tester|Project Manager|Sales Associate|Sr\. Sales Associate).

  4. Nel riquadro Dettagli colonna scegliere BirthDate.

    Per impostazione predefinita, il campo Generatore è impostato su DateTime2.

  5. Nella sezione Generatore della finestra Proprietà impostare la proprietà Max su una data risalente ad almeno 18 anni prima della data corrente (ad esempio, 10/30/1987 11:59:59 PM). Impostare inoltre la proprietà Min su 1/1/1930 12:00:00 AM.

  6. Nel riquadro Dettagli colonna scegliere MaritalStatus e impostare il campo Generatore su RegularExpression.

  7. Nella sezione Generatore della finestra Proprietà impostare la proprietà Expression su (M|S).

  8. Nel riquadro Dettagli colonna scegliere Gender e impostare il campo Generatore su RegularExpression.

  9. Nella sezione Generatore della finestra Proprietà impostare la proprietà Expression su (M|F).

  10. Nel riquadro Dettagli colonna scegliere HireDate.

    Per impostazione predefinita, il campo Generatore è impostato su DateTime2.

  11. Nella sezione Generatore della finestra Proprietà impostare la proprietà Max sulla data corrente (ad esempio 10/30/2006 11:59:59 PM). Impostare inoltre la proprietà Min su 1/1/2000 12:00:00 AM.

  12. Nel riquadro Dettagli colonna scegliere VacationHours.

    Per impostazione predefinita, il campo Generatore è impostato su SmallInt.

  13. Nella sezione Generatore della finestra Proprietà impostare la proprietà Distribution su Normal.

  14. Nella sezione Generatore della finestra Proprietà impostare la proprietà Max su 160 e la proprietà Min su -10.

  15. Nel riquadro Dettagli colonna scegliere ModifiedDate.

    Per impostazione predefinita, il campo Generatore è impostato su DateTime2.

  16. Nella sezione Generatore della finestra Proprietà impostare la proprietà Distribution su ExponentialInverse. Impostare inoltre la proprietà Max sulla data corrente (ad esempio, 10/30/2006 11:59:59 PM) e la proprietà Min su 1/1/2000 12:00:00 AM.

Per modificare il numero di righe generate

  1. Fare clic su [Person].[CountryRegion] nel piano di generazione dati.

  2. Nel campo Righe da inserire digitare 10.

  3. Fare clic su [HumanResources].[Employee] nel piano di generazione dati.

  4. Nel campo Righe da inserire digitare 25.

  5. Fare clic su [Person].[StateProvince] nel piano di generazione dati.

  6. Nel campo Tabella correlata fare clic su [Person].[CountryRegion].

  7. Nel campo Rapporto a tabella correlata digitare 2:1.

    Questo passaggio consente di specificare che si desidera generare un numero doppio di righe per la tabella [Person].[StateProvince] rispetto alla tabella [Person].[CountryRegion].

  8. Scegliere Salva AWGenPlan.dgen dal menu File per salvare le modifiche apportate al piano di generazione dati.

Per visualizzare un'anteprima della generazione dei dati e generare dati di test

La tabella HumanResources.Employee contiene trigger che potrebbero interferire con la generazione dei dati se questa viene eseguita più volte. Per eseguire la generazione dei dati come parte di un'esecuzione di test automatizzata, è necessario disabilitare e in un secondo tempo abilitare tali trigger come parte degli unit test.

Per eseguire più volte la generazione dei dati come parte di questa procedura, è necessario attenersi alla procedura Per disabilitare e abilitare i trigger nella tabella Employee per la generazione dei dati. Per eseguire la generazione dei dati una sola volta, attenersi alla procedura Per verificare i risultati del piano di generazione dati.

Per visualizzare un'anteprima della generazione dei dati e generare dati di test

  1. Scegliere Generatore di dati dal menu Dati e fare clic su Anteprima di generazione dati.

    Verrà visualizzata la finestra Anteprima di generazione dati con un esempio dei dati che verranno generati. Se i dati soddisfano i criteri specificati, continuare con il passaggio successivo. Se è necessario correggere il piano di generazione dati, apportare le modifiche desiderate, quindi ripetere questo passaggio.

  2. Scegliere Generatore di dati dal menu Dati e fare clic su Genera dati.

    Verrà visualizzata la finestra di dialogo Genera dati per database di destinazione.

  3. In Database di destinazione creare una connessione al database AdvWorksSandbox e scegliere OK.

  4. Quando viene visualizzata la richiesta "Eliminare i dati esistenti dalle tabelle prima di generare nuovi dati?", fare clic su .

    I dati verranno generati in base alle specifiche dell'utente. Al termine della generazione, verrà visualizzato un segno di spunta verde in ogni riga per indicare che tutti i dati sono stati generati correttamente. Se alcuni dati non vengono generati, nella finestra Elenco errori verranno visualizzati gli errori che si sono verificati.

  5. Passare alla procedura denominata "Per verificare i risultati del piano di generazione dati".

Per disabilitare e abilitare i trigger nella tabella Employee per la generazione dei dati

  1. Prima di generare dati, scegliere Editor Transact-SQL dal menu Dati e fare clic su Nuova connessione query.

  2. Se è presente una connessione per il database nell'ambiente di sviluppo isolato, andare a passaggio 7.

  3. Scegliere Nuova connessione.

    Verrà visualizzata la finestra di dialogo Proprietà connessione.

  4. In Nome server digitare o selezionare il nome del server database nel quale è stato distribuito il database, ad esempio (locale)\SQLExpress.

  5. In Accesso al server fare clic su Usa autenticazione di Windows.

  6. In Connessione al database fare clic su Seleziona o immetti nome di database, digitare AdvWorksSandbox e scegliere OK.

    La connessione verrà creata e aggiunta all'elenco nella finestra di dialogo Connessione al database.

  7. Nella finestra di dialogo Connessione al database fare clic sulla stringa di connessione corrispondente al database nell'ambiente di sviluppo isolato e scegliere OK.

    Verrà visualizzato l'editor Transact-SQL con una connessione attiva al database AdvWorksSandbox.

  8. Scegliere OK.

    Verrà visualizzato l'editor Transact-SQL.

  9. Nell'editor Transact-SQL digitare il seguente Transact-SQL:

    DISABLE TRIGGER [HumanResources].[dEmployee] ON [HumanResources].[Employee]
    GO
    
  10. Sulla barra degli strumenti dell'editor Transact-SQL fare clic su Esegui SQL.

    Nella scheda Messaggi verrà visualizzato il codice seguente:

    Comandi riusciti.

  11. Fare clic sulla finestra contenente il piano di generazione dati.

  12. Scegliere Generatore di dati dal menu Dati e fare clic su Anteprima di generazione dati.

    Verrà visualizzata la finestra Anteprima di generazione dati con un esempio dei dati che verranno generati. Se i dati soddisfano i criteri specificati, continuare con il passaggio successivo. Se è necessario correggere il piano di generazione dati, apportare le modifiche desiderate, quindi ripetere questo passaggio.

  13. Scegliere Generatore di dati dal menu Dati e fare clic su Genera dati.

    Verrà visualizzata la finestra di dialogo Genera dati per database di destinazione.

  14. In Database di destinazione fare clic sulla connessione al database AdvWorksSandbox e scegliere OK.

  15. Quando viene visualizzata la richiesta "Cancellare il contenuto delle tabelle selezionate prima di inserire nuove righe?", fare clic su .

    I dati verranno generati in base alle specifiche dell'utente. Al termine della generazione, verrà visualizzato un segno di spunta verde in ogni riga per indicare che tutti i dati sono stati generati correttamente. Se alcuni dati non vengono generati, nella finestra Elenco errori verranno visualizzati gli errori che si sono verificati.

  16. Fare clic sulla finestra dell'editor Transact-SQL.

  17. In genere è la posizione in cui si abilitano nuovamente i trigger. Tuttavia, per semplificare gli unit test del database in modo da non dover disabilitare ed abilitare nuovamente trigger come parte dello unit test, si lascia il trigger disabilitato.

Per verificare i risultati del piano di generazione dati

  1. Scegliere Editor Transact-SQL dal menu Dati e quindi fare clic su Nuova query.

    Verrà visualizzata la finestra di dialogo Connetti al database.

  2. Se è presente una connessione per il database nell'ambiente di sviluppo isolato, andare a passaggio 8.

  3. Scegliere Nuova connessione.

    Verrà visualizzata la finestra di dialogo Proprietà connessione.

  4. In Nome server digitare o selezionare il nome del server database nel quale è stato distribuito il database, ad esempio (locale)\SQLExpress.

  5. In Accesso al server fare clic su Usa autenticazione di Windows.

  6. In Connessione al database fare clic su Seleziona o immetti nome di database, digitare AdvWorksSandbox e scegliere OK.

    La connessione verrà creata e aggiunta all'elenco nella finestra di dialogo Connessione al database.

  7. Nella finestra di dialogo Connessione al database fare clic sulla stringa di connessione corrispondente al database nell'ambiente di sviluppo isolato e scegliere OK.

    Verrà visualizzato l'editor Transact-SQL con una connessione attiva al database AdvWorksSandbox.

  8. Nell'editor Transact-SQL digitare quanto segue:

    SELECT * from HumanResources.Employee;
    
  9. Premere F5 per eseguire la query.

    Verrà visualizzato il riquadro dei risultati con i risultati della generazione dei dati.

  10. Scegliere Chiudi dal menu File per chiudere l'editor Transact-SQL.

    Definire quindi gli unit test del database che verificano il codice di database esistente.

Definisci unit test

In genere vengono definiti unit test per tutte le stored procedure, le funzioni e i trigger. In questa procedura dettagliata viene illustrato come definire solo uno unit test come esempio. Viene definito un test per la funzione ufnLeadingZeros e per la stored procedure dbo.uspGetManagerEmployees.

La funzione ufnLeadingZeros accetta un intero e restituisce una rappresentazione di stringa VARCHAR(8) di tale intero al quale vengono aggiunti zeri iniziali. Per eseguire il test di questa funzione, è possibile passare un valore e verificare che il risultato ottenuto sia quello previsto.

Alla stored procedure uspGetManagerEmployees viene passato un identificatore del dipendente e la stored procedure restituisce tutti i dipendenti che fanno riferimento al responsabile di cui è stato specificato l'identificatore (gerarchia completa). Poiché il generatore di dati produce gli stessi dati di test se viene fornito lo stesso valore di inizializzazione, è possibile conoscere il numero di righe che devono essere restituite. Questo test è molto semplice. In un progetto reale, sarebbe opportuno creare test più dettagliati per garantire che vengano restituiti i dipendenti corretti.

Per creare unit test

  1. Scegliere Visualizzazione schema dal menu Visualizza.

    Se non è già visualizzata, verrà visualizzata la finestra Visualizzazione schema.

  2. In Visualizzazione schema, aprire la cartella Schemi, aprire la cartella dbo, quindi aprire la cartella Programmazione.

  3. Fare clic con il pulsante destro del mouse sulla cartella Funzioni e scegliere Crea unit test.

    Verrà visualizzata la finestra di dialogo Crea unit test.

  4. Espandere la struttura ad albero di selezione corrente e selezionare la casella di controllo per la funzione dbo.ufnLeadingZeros. Deselezionare le caselle di controllo per eventuali altre stored procedure o funzioni selezionate.

    Nota

    Per creare una linea di base reale per il progetto, è necessario creare unit test per tutte le funzioni, le stored procedure e i trigger presenti nel database. Questa procedura dettagliata è incentrata su una funzione allo scopo di illustrare il processo.

  5. In Progetto fare clic su Crea nuovo progetto di test Visual C#.

  6. In Nome nuovo progetto digitare AWSandboxTestProject e quindi scegliere OK.

    Verrà creato il progetto di unit test e verrà visualizzata la finestra di dialogo Configurazione progetto per gli unit test.

  7. In Connessioni database fare clic sulla connessione per AdvWorksSandbox.

  8. In Distribuzione deselezionare la casella di controllo Distribuisci automaticamente il progetto di database prima di eseguire test.

  9. In Stato database selezionare la casella di controllo Genera dati di test prima di eseguire unit test.

  10. Nell'elenco Stato database selezionare AWGenPlan.dgen.

  11. Se non è già selezionata, selezionare la casella di controllo Cancella il database prima di generare dati di test e quindi scegliere OK.

    Il progetto di unit test del database verrà creato e aggiunto alla soluzione. Verrà aperta la finestra di progettazione unit test del database dove è possibile modificare le condizioni di test e creare test.

    Nota

    Se è necessario modificare la configurazione di test, scegliere Configurazione test di database dal menu Test. Verrà visualizzata la finestra di dialogo Configurazione progetto dove è possibile modificare le configurazioni.

    A questo punto, è possibile specificare le condizioni di test e scrivere il test.

Per definire uno unit test per la funzione ufnLeadingZeros

  1. Scegliere dbo.ufnLeadingZeros nell'elenco dei test nella finestra di progettazione unit test del database.

  2. Verificare che nel secondo elenco venga visualizzato "Test".

  3. Sostituire le istruzioni Transact-SQL nel riquadro superiore della finestra di progettazione con quanto indicato di seguito:

    -- db unit test for dbo.ufnLeadingZeros
    DECLARE @RC VARCHAR (8),
    @Value INT
    
    SELECT @RC = NULL,
    @Value = 27
    
    SELECT @RC = [dbo].[ufnLeadingZeros]( @Value)
    
    IF @RC <> '00000027' 
    RAISERROR(N'ufnLeadingZero: expected "00000027" but got %s.', 16, 1, @RC)
    
    SELECT RC=@RC
    
  4. Nel riquadro Condizioni di test fare clic sulla condizione di test di tipo Senza risultati ed eliminarla facendo clic su Elimina condizione di test (x).

  5. Aggiungere una condizione di test di conteggio righe selezionando Conteggio righe nell'elenco nel riquadro Condizioni di test, quindi fare clic su Aggiungi condizione di test (+).

  6. Nella finestra Proprietà impostare la proprietà Conteggio righe su 1.

    Se si desidera imporre l'esito negativo del test, modificare @Value da 27 in un altro valore.

    A questo punto è possibile eseguire gli unit test.

Compilare ed eseguire unit test

Dopo avere definito gli unit test, è possibile compilarli ed eseguirli.

Per compilare ed eseguire gli unit test

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo della soluzione e quindi scegliere Ricompila soluzione.

    Tramite questo passaggio viene imposta una ricompilazione del progetto di database e del progetto di unit test per garantire che tutti gli elementi siano aggiornati.

  2. Scegliere Finestre dal menu Test, quindi Editor elenco dei test.

    Nella finestra Visualizzazione test verranno elencati diversi test. I test denominati ManualTest1 e TestMethod1 vengono creati per impostazione predefinita. Il test denominato dbo_ufpLeadingZeroTest è quello creato durante questa procedura dettagliata.

  3. Selezionare la casella di controllo relativa a dbo_ufpLeadingZeroTest, fare clic con il pulsante destro del mouse su di esso e scegliere Esegui test selezionati.

  4. I risultati verranno visualizzati nella finestra Risultati del test.

    Il progetto di database verrà distribuito nell'ambiente di sviluppo isolato, i dati di test verranno generati e il test verrà eseguito e superato.

Archiviare modifiche in sospeso

Dopo avere definito gli unit test per stabilire se le modifiche impediscono il corretto funzionamento del database, è possibile archiviarli e condividere la soluzione con il team.

Per condividere la soluzione con il team

  1. Scegliere Altre finestre dal menu Visualizza e quindi fare clic su Modifiche in sospeso.

    Verrà visualizzata la finestra Modifiche in sospeso.

  2. In Commenti digitare Piano di generazione dati e unit test della linea di base definiti.

  3. Nella finestra Modifiche in sospeso fare clic su Archivia sulla barra degli strumenti.

    Quando il progetto di database e i file in esso contenuti vengono sottoposti al controllo della versione, viene visualizzata la finestra di dialogo Stato archiviazione. Le icone in Esplora soluzioni vengono aggiornate per indicare che i file sono archiviati nel controllo delle versioni.

Passaggi successivi

Dopo avere archiviato la soluzione nel controllo della versione, ogni membro del team può dedicarsi alle attività assegnate. Ogni persona può lavorare nel proprio ambiente di sviluppo del database isolato finché le modifiche non sono pronte per essere condivise.

In Procedura dettagliata: esecuzione dello sviluppo iterativo di database in un ambiente di sviluppo isolato viene illustrato come utilizzare il refactoring per rinominare gli oggetti di database nell'ambiente di sviluppo isolato. Compilare, distribuire e testare le modifiche prima di archiviarle in modo che altri membri del team possano eseguirne la sincronizzazione con i rispettivi ambienti di sviluppo isolati.

Vedere anche

Attività

Procedura dettagliata: esecuzione dello sviluppo iterativo di database in un ambiente di sviluppo isolato

Concetti

Generazione di dati di test per i database tramite generatori di dati

Verifica del codice del database tramite unit test

Compilazione e distribuzione di database in un ambiente di sviluppo isolato

Panoramica delle impostazioni del progetto di database

Cronologia delle modifiche

Data

Cronologia

Motivo

Aggiunto supporto per SQL Server 2008 R2 e AdventureWorks2008R2. Inoltre, corretti alcuni problemi relativi alla generazione dati e agli unit test indicati nei commenti e suggerimenti del cliente.

Modifica di funzionalità in SP1.