Тестовый проект Visual Studio - не копирует папку на развертывании

Обычно тесты для модуля хранятся в этом модуле, но в папке тестов. Так что, если вы измените некоторые внутренние компоненты вашего модуля, вам нужно будет запускать тесты только для этого модуля.

Допустим, у вас есть модуль A и проекты P1 и P2, которые используют этот модуль A в качестве зависимости. Тогда модульные тесты для модуля A должны быть в хранилище для модуля A. В этом случае, как только сборка для модуля A завершится успешно, вы знаете, что этот модуль работает нормально.

Если у вас есть модульные тесты для кода модуля A в проекте P1, то вы не можете протестировать сборку модуля A без запуска сборки проекта P1. И вам также может потребоваться запустить дублированные тесты для кода из модуля A в вашем другом проекте P2, потому что если кто-то удалит модуль A из проекта P1 (и все модульные тесты для этого кода также будут удалены), то этот модуль A не будет иметь тестов на всех.

14
задан Anthony Mastrean 21 May 2009 в 20:49
поделиться

3 ответа

Используйте атрибут [DeploymentItem] в тестовых классах, которые его используют. Вы можете указать каталог:

[TestClass]
[DeploymentItem("blahblah\\myDirectory", "myDirectory")]
public class MyTest
{

}

Примечание:

  • DeploymentItem очень медленно запускает тесты. Вроде копирует 2 файла в секунду.
  • Вы можете указать атрибут в тестовом базовом классе. Но это не всегда работает, если у вас более одного тестового проекта.
  • Вы, вероятно, можете указать его в TestClass, у которого есть метод, помеченный как [AssemblyInitialize] . Тогда вам нужно только предоставить его один раз. Не уверен, надо попробовать.
  • Исходный каталог зависит от местоположения решения. Это практически не задокументировано.
17
ответ дан 1 December 2019 в 09:33
поделиться

The other option you have is to create another folder beneath the original folder, and then that folder will be deployed to the out directory. For example you can have this structure:

TestFolder/

TestFolder/TestDeployment/

And then in the testrunconfig you still select the TestFolder folder and the TestDeployment folder will be deployed to the out directory.

0
ответ дан 1 December 2019 в 09:33
поделиться

Откройте файл .testsettings в блокноте. Теперь вы должны увидеть, что для каждой папки для копирования

<DeploymentItem filename="FolderName\" />

Измените это на

<DeploymentItem filename="FolderName\" outputDirectory="FolderName\" /> 
11
ответ дан 1 December 2019 в 09:33
поделиться
Другие вопросы по тегам:

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