2008-11-28 2 views
3

Я пытаюсь прокомментировать API (.Net), который я подвергаю клиенту. Я делаю это, используя комментарии XML и извлекая через SandCastle.Получение кода модульного тестирования в XML Комментарий

Это все прекрасно и денди, однако у меня есть unittesting для API, и подумал, что код из них будет хорош для размещения в тегах примера.

Значит, кто-нибудь знает, как можно извлечь единичный тестовый код и поместить в теги примера? Или у кого-нибудь есть идеи?

Конечно, я перераспределяю модульные тесты с помощью API, но было бы неплохо иметь их в документации.

ответ

4

Я использую NUnit и Sandcastle Help File Builder. Пожалуйста, взгляните на документацию по файловому архиву Sandcastle, посвященную компоненту Block Block.

Вот пример того, как я помещаю блок тесты коды в примере теге:

/// <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; 
    } 

Вот тест ссылочного блока (CSVDataRowTests.cs) (он должен быть внутри секция #region):

#region ToString_a 

    [Test] 
    public void ToString_a() 
    { 
     CSVDataRow res = new CSVDataRow 
     { 
      Data = "1;2;3" 
     }; 

     Assert.AreEqual(res.ToString(), res.Data); 
    } 

    #endregion 

С уважением.

1

Я вижу, что Jon Skeet har отвечает, что требует некоторой работы: Automatically Unit Test Example Code Неужели кто-нибудь ушел и реализовал это? Есть ли более простой способ? Этот вопрос о получении Metod тело из файла CS: Get a method's contents from a cs file

Я сделал проект, чтобы сделать это: http://code.google.com/p/addsourcetodocumentation/

Смежные вопросы