C# с помощью статической переменной в качестве параметра к DeploymentItem

Я хочу использовать статическую переменную в качестве параметра к DeploymentItem на модульном тесте MSTest, но не кажется, что я могу сделать так. Существует файл XSL, который должен быть скопирован наряду с файлом DLL, когда модульный тест работает, и я определил местоположение как

private static string _xslPath = Path.Combine("MyProjectDir", "transform.xsl");

Однако, когда я затем делаю следующее:

[TestMethod]
[DeploymentItem(DLL)]
[DeploymentItem(_xslPath)]
public void XmlToResultsTest() { }

Я получаю эту ошибку сборки:

Аргументом атрибута должно быть константное выражение, typeof выражение или выражение создания массива типа параметра атрибута

Хорошо хорошо прекрасный, но это просто кажется настолько грязным для сборки пути самостоятельно:

[DeploymentItem(@"MyProjectDir\transform.xsl")]

Я чрезмерно требователен здесь в отношении желания использовать Path.Combine? Действительно ли там другой альтернативен, я отсутствую? Я предполагаю, что мог просто поместить файл XSL в корневой каталог решения, таким образом, я не должен передавать в каталоге проекта как часть пути.

5
задан Sarah Vessels 25 January 2010 в 16:44
поделиться

1 ответ

Атрибуты могут использовать только постоянные строки, поэтому нет: вы не можете сделать это (вам придется использовать предварительно комбинированную версию, или буквальное объединение - не PATHCORMBINE )) Отказ Вы можете использовать параметры развертывания тестового проекта тоже (Testrunconfig?), Но, честно говоря, я предпочитаю использовать Nunit подход только что маркировки файла (в CSPROJ, как обычно) для развертывания. Я еще предстоит понять, почему MS добавил отдельный способ определить это ...

10
ответ дан 13 December 2019 в 19:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: