Получение имени таблицы в модульном тесте mstest с данными из Microsoft Test Manager - PullRequest
1 голос
/ 09 марта 2012

У меня есть методы тестирования, украшенные атрибутом DataSource, например:

[DataSource(PROVIDER_INVARIANT_NAME, CONNECTION_STRING, 
"Test Case#", DataAccessMethod.Sequential), 
TestMethod]

с номером тестового набора в MTM, заменяющим "Test Case #". Я пытаюсь получить это число в модульном тесте, но TestContext.DataRow.Table.TableName всегда "Table1". Может кто-нибудь сказать мне, как получить реальную стоимость?

1 Ответ

1 голос
/ 11 марта 2012

Если я не ошибаюсь, "TestCase #" не может быть заменен на MTM, поэтому, вероятно, вы вручную добавили его во все свои атрибуты DataSource.

Это значение равно constant. Почему бы вам не добавить постоянную переменную в TestClass, а затем использовать ее как на DataSourceAttribute, так и на TestMethod?

1010 *
* EDIT
Вы также можете получить прямой доступ к DataSourceAttribute:

[TestClass]
public class TestClass
{
    public DataSourceAttribute DataSource
    {
        get
        {
            return (DataSourceAttribute)Attribute.GetCustomAttribute(typeof(TestClass).
                GetMethod("TestMethod"), typeof(DataSourceAttribute));
        }
    }

    [DataSource(PROVIDER_INVARIANT_NAME, CONNECTION_STRING, 
        "Test Case#", DataAccessMethod.Sequential), TestMethod]
    public void TestMethod()
    {
        string TestCaseId = DataSource.TableName;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...