VisualStudio.TestTools.WebTesting.TestDescriptionAttribute Синтаксис - PullRequest
0 голосов
/ 04 октября 2009

Каков синтаксис использования [TestDescriptionAttribute] [1] теста для заполнения столбца Description в окне результатов теста?

Контекст: 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 );
        }

    }
}

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

alt text

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

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

Ответы [ 2 ]

1 голос
/ 04 октября 2009

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

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

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

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

EDIT2: Комунайдите что-то подобное, посмотрите на классы в одном пространстве имен.Так устроены занятия, чтобы их было легко найти.

0 голосов
/ 04 октября 2009
TestDescriptionAttribute(TestDescription="hi")

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

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

...