Condividi tramite


Procedura: distribuire file per test

Prima di eseguire un test, il test e l'applicazione devono essere copiati in una posizione in cui possono essere eseguiti, insieme ad altri assembly che fanno riferimento a.Un test in genere richiede anche i file aggiuntivi quali dati di test, i file di configurazione, un database e l'assembly in modo esplicito caricati.Per rendere tali file aggiuntivi per il test, è necessario specificare che devono essere implementati.

Quando i test vengono eseguiti?

Visual Studio 2012 consente di eseguire i test in più modi:

  • Nella cartella di output di compilazione, in genere <your project>\ bin \ debug.

  • Nella cartella locale di distribuzione dei test nello stesso computer di compilazione.

  • In un computer remoto. La distribuzione remota viene utilizzata nel test distribuito o alle applicazioni web e ad applicazioni che devono essere eseguite su una determinata piattaforma.Per la distribuzione remota è necessario installare controller di test e agenti di teste in genere si eseguono i test in ambiente lab.Per ulteriori informazioni sulla distribuzione remota, vedere Procedura: eseguire un test mediante controller e agenti di test.

File di test di distribuzione di Ricerca per categorie per un test locale?

Questa è la migliore per:

  1. Copiare i file nella directory di destinazione build come parte del processo di compilazione.

    • Se sono specifici di un progetto di test, includerli come file di dati nel progetto di test Visual Studio.Selezionarli in Esplora soluzioni e impostare la proprietà Copia in directory di output su Copia se più recente.

    • In caso contrario, definire un'attività post-compilazione copiare i file nella directory di output di compilazione.Ad esempio:

      xcopy /Y /S "$(SolutionDir)SharedFiles\*" "$(TargetDir)"
      

      Aprire le proprietà del progetto di test.In un progetto c, aprire la pagina Eventi di compilazione.In un progetto di Visual Basic., aprire la pagina Compilazione e scegliere Eventi di compilazione.Aggiungere il comando di copia nel campo Evento di post-generazione.

  2. Utilizzare DeploymentItemAttribute sui metodi di test o sulle classi di test per specificare i file e le cartelle che devono essere copiati nella directory di output di compilazione nella directory di distribuzione.

    [TestClass]
    class TestClass1
    {
      [TestMethod]
      [DeploymentItem("source", "targetFolder")]
      public void Test1()
      {
        string testData = System.IO.File.ReadAllText(@"targetFolder\source");
        ...
    } }
    
    <TestClass()> _
    Public Class UnitTest1
        <TestMethod()> _
        <DeploymentItem("source", "targetFolder")> _
        Sub TestMethod1()
            Dim testData As String = _
                System.IO.File.ReadAllText(@"targetFolder\source")
        ...
        End Sub
    End Class
    
    • database di origine è un file o una directory da copiare.Il percorso può essere assoluto, o relativo alla directory di output di compilazione.

    • targetFolder è facoltativo.È la directory in cui il contenuto della directory o il file di origine verranno copiati.Il percorso può essere assoluto, o relativo alla directory di distribuzione.Il valore predefinito è ". ", la directory di distribuzione.

      [!NOTA]

      targetFolder è sempre una directory, mai un percorso di file.Non è possibile modificare il nome del file tramite DeploymentItem.

    È possibile utilizzare l'attributo per il numero di volte desiderato ed è possibile applicarlo ai metodi di test o classi di test.

    Quando si seleziona un set di test per l'esecuzione, tutti gli elementi specificati i relativi attributi DeploymentItem vengono copiati prima dell'esecuzione del test.

  3. Considerare la possibilità di eseguire unit test direttamente nella directory di output di compilazione, in modo che il test viene eseguito più velocemente.Ciò è particolarmente utile il server di compilazione dopo avere archiviato i test.

    A tale scopo, aggiungere un file di .runsettings alla soluzione, importare <DeploymentEnabled>False</DeploymentEnabled>e selezionare il file in Prova, menu Prova impostazioni.Lo stesso effetto si verifica nei test in cui DeploymentItemAttribute non viene utilizzato alcun.

    Tuttavia, non è possibile evitare l'utilizzo di una cartella di distribuzione se si utilizza un file di .testsettings, richiesto per il web e i test di carico, test codificati dell'interfaccia utente e i test in cui si distribuisce un'applicazione nei computer remoti.

Quando è consigliabile utilizzare un file di .testsettings?

Non è necessario un file di .testsettings per gli unit test normali.Se non è richiesto un file di .testsettings, non utilizzare uno.Esegue unit test eseguiti più lentamente ed è incompatibile con framework di test di terze parti.Considerare altri modi di distribuzione anziché.

È necessario un file di .testsettings se uno di questi affermazioni:

Se si utilizza un file di .testsettings, l'applicazione e assembly di test verranno copiati sempre a una cartella di distribuzione.

È possibile specificare file di dati e directory alla pagina Distribuzione dell'editor di .testsettings.Verranno copiati nella cartella di distribuzione prima di ogni esecuzione dei test.I percorsi degli elementi specificati in questa pagina sono sempre relativo alla directory della soluzione e vengono sempre assegnati alla cartella di distribuzione accanto all'applicazione e assembly di test.

Se si desidera utilizzare percorsi assoluti o specificare una directory di destinazione diversa, aprire il file di .testsettings con l'editor XML e inserire un frammento simile al seguente:

<Deployment>
  <DeploymentItem filename="C:\MyTestData\TestData.mdb"
        outputDirectory="D:\TestDB\" />
</Deployment>

outputDirectory può essere assoluto o relativo alla directory di distribuzione.

Quando una cartella separata di distribuzione viene utilizzata?

Se si eseguono test utilizzando Visual Studio, la cartella di distribuzione viene creata sotto TestResults nella cartella Soluzione.

Una cartella separata di distribuzione viene utilizzata se uno dei metodi di test o classi in un'esecuzione di test contiene l'attributo DeploymentItem, oppure se si utilizza un file di .testsettings.

Se una cartella di distribuzione viene utilizzato, i file e le cartelle seguenti vengono copiati nella cartella di distribuzione prima che vengano eseguiti i test:

Cartelle di distribuzione per un'esecuzione dei test locale

Cartella di distribuzione locale per test

Quando i file vengono distribuiti e nella sequenza?

In un'esecuzione, tutti i file da distribuire vengono copiati prima che tutti i test inizino.Un test è una serie di test avviati da un solo comando o da un evento pianificato.Ciò significa che se si specifica un file di dati da implementare per un metodo di test specifico, sarà disponibile per qualsiasi altro test che viene eseguito nella stessa esecuzione.

I punti seguenti vengono copiati, nell'ordine indicato.Gli elementi copiati in un secondo momento sovrascrivono quelli copiati precedentemente, se hanno lo stesso nome.

  1. Elementi specificati utilizzando DeploymentItemAttribute

  2. Dipendenze.Ad esempio, file di configurazione dell'applicazione e gli assembly dipendenti.

  3. Elementi specificati in un file di .testsettings, se si utilizza uno.

  4. File binari gestiti con strumenti.Ad esempio, assembly che sono stati instrumentati per attivare il code coverage o IntelliTrace.

    Se si utilizzano gli strumenti interni, i file binari vengono gestiti con gli strumenti prima e quindi copiati nella directory di distribuzione; altrimenti, vengono prima copiati e poi gestiti con gli strumenti.La strumentazione sul posto rappresenta l'impostazione predefinita per i test eseguiti localmente.

  5. Il file o i file che comprendono il test.Sono inclusi gli assembly del test, per gli unit test; testo o i file .mht, per i test manuali; altri tipi di file per altri tipi di test, come i test generici.

Qual è la cartella TestResults?

  • Cartella dell'esecuzione dei test.TestResults contiene una cartella per ogni test che ha avviato.Il nome include il tempo creato.

    Se si specifica il valore e gli script di pulizia in un file di .testsettings, la cartella di esecuzione dei test contiene gli script.

  • Indietro.Ciascuna cartella di esecuzione dei test contiene una cartella denominata Out.La cartella Out rappresenta la cartella di distribuzione effettiva, agli assembly e altri file di distribuzione vengono copiati quando l'esecuzione dei test viene avviato.

  • In.I risultati di code coverage e alcuni altri risultati del test vengono archiviati nella cartella denominata in.

Vedere anche

Riferimenti

DeploymentItemAttribute

Concetti

Strumentazione e ripetizione della firma di assembly

Altre risorse

Specifica delle impostazioni test di Visual Studio