Модульное тестирование артефактов BizTalk 2020 с использованием Visual Studio 2019 приводит к проблеме с Intellisense

У меня возникает проблема при попытке использовать модульное тестирование для артефактов BizTalk 2020 в Visual Studio 2019.

Вот шаги, которым я следовал:

  • Я создаю новый пустой проект BizTalk "Тестирование" и настраиваю его для модульного тестирования в свойствах проекта.
  • Создаю в проекте папку "Трубопроводы"
  • В этой папке я создаю конвейер приема "ppr_Testing.btp" с одним компонентом "дизассемблер XML".
  • Создаю новый проект модульного тестирования "_Test"
  • В проекте "_Test" я добавляю ссылку на проект в "Тестирование"
  • В проекте модульного тестирования я создаю модульный тест и пытаюсь написать код для создания экземпляра конвейера ppr_Testing.
using Testing.Pipelines;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;

namespace _Test
{
    
    /// <summary>
    ///This is a test class for Test_ppr_Testing and is intended
    ///to contain all Test_ppr_Testing Unit Tests
    ///</summary>
    [TestClass()]
    public class Test_ppr_Testing
    {

        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 ppr_Testing Constructor
        ///</summary>
        [TestMethod()]
        public void Test_ppr_TestingConstructor()
        {
            ppr_Testing target = new ppr_Testing();

            var lDocuments = new System.Collections.Specialized.StringCollection();
            lDocuments.Add(@"C:\MyTestDirectory\SomeFile.xml");

            var lParts = new System.Collections.Specialized.StringCollection();
            var lSchemas = new System.Collections.Generic.Dictionary<string, string>();

            try
            {
                target.TestPipeline(lDocuments, lParts, lSchemas);
                var lTmp = this.TestContext;
            }
            catch (Exception ex)
            {
                Assert.Fail(ex.ToString());
            }
        }
    }
}

Результат:

  • Код подчеркнут по ошибке, потому что объект не распознается Intellisense
  • Если мне удастся написать тестовый код без Intellisense, он компилируется и запускается успешно.

Ошибка Intellisense 1

Ошибка Intellisense 2

Я что-то делаю не так или моя установка Visual Studio 2019 повреждена?

Я сейчас перехожу с BizTalk 2010 на BizTalk 2020, и с BizTalk 2010 и Visual Studio 2010 все стало проще:

  • Я просто захожу в меню "Тест", "Новый тест...", затем "Мастер модульного тестирования" и следую указаниям мастера, и все в порядке.

Заранее благодарю за любую помощь.

1 ответ

При создании проекта BizTalk с артефактами BizTalk (btm/btp/xsd) BizTalk создаст файлы .cs для этих файлов в проекте. Сгенерированные файлы .cs не добавляются автоматически в сам проект, и это приводит к тому, что Intellisense в проекте модульного тестирования не может «видеть» типы. Если вы включите файлы .cs и выполните перестроение, проблема должна исчезнуть. Однако обратите внимание, что добавление сгенерированных файлов cs в проект и в репозиторий кода может вызвать проблемы при сборке из-за заблокированных файлов.

Другие вопросы по тегам