Dotnet test Проблема сбора данных: "Не удалось найти сборщик данных"
Я пытаюсь создать собственный сборщик данных для нескольких тестов xUnit, но сталкиваюсь со следующей проблемой:
Сбор данных: не удалось найти сборщик данных "MyDataCollector"
Чтобы создать рассматриваемый сборщик данных, я следовал руководству в этой статье.
Мой сборщик данных выглядит так:
namespace Test.DataCollectorLibrary
{
[DataCollectorFriendlyName("MyDataCollector")]
[DataCollectorTypeUri("my://new/datacollector")]
public class MyDataCollector : DataCollector
{
int i = 0;
private string tempDirectoryPath = Path.GetTempPath();
private DataCollectionEnvironmentContext context;
private DataCollectionSink dataCollectionSink;
private DataCollectionLogger logger;
public override void Initialize(XmlElement configurationElement,
DataCollectionEvents events,
DataCollectionSink dataSink,
DataCollectionLogger logger,
DataCollectionEnvironmentContext environmentContext)
{
events.TestHostLaunched += this.TestHostLaunched_Handler;
events.SessionStart += this.SessionStarted_Handler;
events.SessionEnd += this.SessionEnded_Handler;
events.TestCaseStart += this.Events_TestCaseStart;
events.TestCaseEnd += this.Events_TestCaseEnd;
this.context = environmentContext ?? throw new ArgumentNullException(nameof(environmentContext));
this.dataCollectionSink = dataSink ?? throw new ArgumentNullException(nameof(dataSink));
this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
}
private void Events_TestCaseStart(object sender, TestCaseStartEventArgs e)
{
this.logger.LogWarning(this.context.SessionDataCollectionContext, "TestCaseStarted " + e.TestCaseName);
this.logger.LogWarning(this.context.SessionDataCollectionContext, "TestCaseStarted " + e.TestElement.FullyQualifiedName);
var filename = Path.Combine(this.tempDirectoryPath, "testcasefilename" + i++ + ".txt");
File.WriteAllText(filename, string.Empty);
this.dataCollectionSink.SendFileAsync(e.Context, filename, true);
}
Я пытаюсь запустить тесты с помощью команды "dotnet test" из каталога, в котором находятся модульные тесты (включая файл проекта C#), примерно так:
[каталог модульных тестов]>dotnet test --collect:"MyDataCollector" --test-adapter-path "../Test.DataCollectorLibrary/bin/Debug/netcoreapp2.0"
Приведенная выше команда запускается в PowerShell. И модульные тесты, и MyDataCollector являются проектами.NET Core 2.0 в решении Visual C#. В приведенной выше команде "Проверка точки" "../Test.DataCollectorLibrary/bin/Debug/netcoreapp2.0" - это путь к Test.DataCollectorLibrary.dll.
Вот вывод в консоли PowerShell:
В чем здесь проблема? Почему мой сборщик данных не найден?