Trasmissione del codice di unit test in commento XML [duplicato]
-
11-07-2019 - |
Domanda
Questa domanda ha già una risposta qui:
- Codice di esempio di test unità automatico 4 risposte
Sto cercando di commentare un'API (.Net) che sto esponendo a un cliente. Lo sto facendo usando commenti XML ed estraendo via SandCastle.
Questo è tutto perfetto e dandy, tuttavia ho unittesting per l'API, e ho pensato che il codice da questi sarebbe buono da inserire nei tag di esempio.
Qualcuno conosce un buon modo per estrarre il codice unit test e inserirlo nei tag di esempio? O qualcuno ha idee migliori?
Ovviamente ridistribuisco i test unitari con l'API, ma sarebbe bene averli nella documentazione.
Soluzione
Sto usando NUnit e Sandcastle Help File Builder. Dai un'occhiata alla documentazione di Sandcastle Help File Builder su The Code Block Component.
Ecco un esempio di come inserisco il codice unit test nel tag di esempio:
/// <summary>
/// Returns a string representation of an object.
/// </summary>
/// <returns>Comma separated string.</returns>
/// <example>
/// <code source="UnitM.CentrallProcessingLib.Tests\Data\CSVDataRowTests.cs" region="ToString_a" />
/// </example>
public override string ToString()
{
return this.Data;
}
Ecco un test unit referenziato (CSVDataRowTests.cs) (dovrebbe essere all'interno della sezione #region):
#region ToString_a
[Test]
public void ToString_a()
{
CSVDataRow res = new CSVDataRow
{
Data = "1;2;3"
};
Assert.AreEqual(res.ToString(), res.Data);
}
#endregion
Cordiali saluti.
Altri suggerimenti
Vedo che Jon Skeet ha una risposta, che richiede del lavoro: Codice di esempio di test unità automatico Qualcuno è andato e implementato questo? C'è un modo più semplice? Questa domanda riguarda l'ottenimento di un corpo del metodo da un file cs: Ottieni i contenuti di un metodo da un file cs
Ho realizzato un progetto per fare questo: http://code.google.com/p/addsourcetodocumentation/