VisualStudio.TestTools.WebTesting.TestDescriptionAttribute Синтаксис

Каков синтаксис использования [TestDescriptionAttribute][1] теста для заполнения столбца «Описание» в окне «Результаты теста»?

Контекст: Visual Studio 2008 Team System

Я читал документацию, но не могу найти конкретного примера.

Основываясь на предложении Нгу, я пробовал:

using GlobalSim;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Microsoft.VisualStudio.TestTools.WebTesting;

namespace GlobalSimTests {

    /// <summary>
    ///This is a test class for PongerTest and is intended
    ///to contain all PongerTest Unit Tests
    ///</summary>
    [TestClass()]
    [TestDescriptionAttribute( "hello" )]
    public class PongerTest {

        private TestContext testContextInstance;

        /// <summary>
        ///Gets or sets the test context which provides
        ///information about and functionality for the current test run.
        ///</summary>
        public TestContext TestContext {
            get {
                return testContextInstance;
            }
            set {
                testContextInstance = value;
            }
        }

        /// <summary>
        ///A test for Ping
        ///</summary>
        [TestMethod()]
        public void PingTest () {
            Ponger target = new Ponger();
            string expected = "Pong";
            string actual;
            actual = target.Ping();
            Assert.AreEqual( expected, actual );
        }

    }
}

Это компилируется, но не отображает описание теста в столбце «Описание» окна «Результаты теста».

альтернативный текст

Я также пробовал этот синтаксис:

    /// <summary>
    ///A test for Ping
    ///</summary>
    [TestMethod()]
    [TestDescription( "hello" )]
    public void PingTest () {
        Ponger target = new Ponger();
        string expected = "Pong";
        string actual;
        actual = target.Ping();
        Assert.AreEqual( expected, actual );
    }

Что возвращается от компилятора:

Атрибут TestDescription недействителен для этого типа объявления. Он действителен только для объявлений класса.

Вот синтаксис, который работает. Спасибо всем!

    /// <summary>
    ///A test for Ping
    ///</summary>
    [TestMethod()]
    [Description( "Hello" )]
    public void PingTest () {
        Ponger target = new Ponger();
        string expected = "Pong";
        string actual;
        actual = target.Ping();
        Assert.AreEqual( expected, actual );
    }

person Adam Kane    schedule 04.10.2009    source источник


Ответы (2)


Как сказал @Ngu, поместите его поверх метода test.

[TestMethod()]
[Description( "PingTest Check" )]
public void PingTest () {
     Ponger target = new Ponger();
     string expected = "Pong";
     string actual;
     actual = target.Ping();
     Assert.AreEqual( expected, actual );
  }

РЕДАКТИРОВАТЬ: TestDescriptionAttribute взят из WebTesting пространство имен, которое не следует применять для модульного тестирования. Вместо этого используйте DescriptionAttribute, который является частью пространства имен UnitTesting.

См. модифицированный код выше, и я уверен, что он будет работать.

РЕДАКТИРОВАТЬ2: Чтобы найти что-то подобное, посмотрите на классы в том же пространстве имен. Так устроены классы, чтобы можно было легко найти.

person shahkalpeshp    schedule 04.10.2009
comment
Это не компилируется. Ошибка: Ошибка 1 Атрибут GlobalSimTests «TestDescription» недействителен для этого типа объявления. Он действителен только для объявлений класса. C:\Users\Adam\Projects\GGS_Xna\GlobalSimTests\PongerTest.cs - person Adam Kane; 04.10.2009
comment
Извините, я должен был изучить это подробно. См. измененный код и комментарии выше. - person shahkalpeshp; 04.10.2009
comment
Примечание: [Описание(Проверка PingTest) должно быть: [Описание(Проверка PingTest)] - person Adam Kane; 04.10.2009

TestDescriptionAttribute(TestDescription="hi")

Итак, для этого конкретного теста описание будет hi.

Поместите его поверх метода и посмотрите, работает ли он.

person Graviton    schedule 04.10.2009
comment
Не могли бы вы дать мне немного больше контекста? Я не использовал это раньше, поэтому я не уверен, куда поместить код. Спасибо! (Обратите внимание, что я обновил вопрос с попыткой.) - person Adam Kane; 04.10.2009