From 06f1c8c7031d48e767c013c1526da0adf607b4b7 Mon Sep 17 00:00:00 2001 From: Jared Parsons Date: Sun, 23 Aug 2015 19:20:34 -0700 Subject: [PATCH] Traits displaying in the UI --- xunit.runner.data/TestCaseData.cs | 11 +++- xunit.runner.worker/DiscoverUtil.cs | 5 +- xunit.runner.wpf/MainWindow.xaml | 9 ++- xunit.runner.wpf/ViewModel/MainViewModel.cs | 5 +- ...itCollectionView.TraitViewModelComparer.cs | 39 ++++++++++++ .../ViewModel/TraitCollectionView.cs | 61 +++++++++++++++++++ xunit.runner.wpf/ViewModel/TraitViewModel.cs | 25 ++++++++ xunit.runner.wpf/xunit.runner.wpf.csproj | 3 + 8 files changed, 153 insertions(+), 5 deletions(-) create mode 100644 xunit.runner.wpf/ViewModel/TraitCollectionView.TraitViewModelComparer.cs create mode 100644 xunit.runner.wpf/ViewModel/TraitCollectionView.cs create mode 100644 xunit.runner.wpf/ViewModel/TraitViewModel.cs diff --git a/xunit.runner.data/TestCaseData.cs b/xunit.runner.data/TestCaseData.cs index 9a92b9d..2ce446c 100644 --- a/xunit.runner.data/TestCaseData.cs +++ b/xunit.runner.data/TestCaseData.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; +using System.Runtime.Serialization.Formatters.Binary; using System.Text; using System.Threading.Tasks; @@ -12,27 +13,33 @@ namespace xunit.runner.data public string SerializedForm { get; set; } public string DisplayName { get; set; } public string AssemblyPath { get; set; } + public Dictionary> TraitMap { get; set; } - public TestCaseData(string serializedForm, string displayName, string assemblyPath) + public TestCaseData(string serializedForm, string displayName, string assemblyPath, Dictionary> traitMap) { SerializedForm = serializedForm; DisplayName = displayName; AssemblyPath = assemblyPath; + TraitMap = traitMap; } public static TestCaseData ReadFrom(BinaryReader reader) { + var formatter = new BinaryFormatter(); var serializedForm = reader.ReadString(); var displayName = reader.ReadString(); var assemblyPath = reader.ReadString(); - return new TestCaseData(serializedForm, displayName, assemblyPath); + var traitMap = (Dictionary>)formatter.Deserialize(reader.BaseStream); + return new TestCaseData(serializedForm, displayName, assemblyPath, traitMap); } public void WriteTo(BinaryWriter writer) { + var formatter = new BinaryFormatter(); writer.Write(SerializedForm); writer.Write(DisplayName); writer.Write(AssemblyPath); + formatter.Serialize(writer.BaseStream, TraitMap); } } } diff --git a/xunit.runner.worker/DiscoverUtil.cs b/xunit.runner.worker/DiscoverUtil.cs index e5c2c63..ae32630 100644 --- a/xunit.runner.worker/DiscoverUtil.cs +++ b/xunit.runner.worker/DiscoverUtil.cs @@ -16,11 +16,13 @@ namespace xunit.runner.worker { private readonly ITestFrameworkDiscoverer _discoverer; private readonly ClientWriter _writer; + private readonly Dictionary> _traitMap; internal Impl(ITestFrameworkDiscoverer discoverer, ClientWriter writer) { _discoverer = discoverer; _writer = writer; + _traitMap = new Dictionary>(StringComparer.Ordinal); } protected override bool Visit(ITestCaseDiscoveryMessage testCaseDiscovered) @@ -29,7 +31,8 @@ namespace xunit.runner.worker var testCaseData = new TestCaseData( _discoverer.Serialize(testCase), testCase.DisplayName, - testCaseDiscovered.TestAssembly.Assembly.AssemblyPath); + testCaseDiscovered.TestAssembly.Assembly.AssemblyPath, + testCase.Traits); Console.WriteLine(testCase.DisplayName); _writer.Write(TestDataKind.Value); diff --git a/xunit.runner.wpf/MainWindow.xaml b/xunit.runner.wpf/MainWindow.xaml index a0ecd41..5940406 100644 --- a/xunit.runner.wpf/MainWindow.xaml +++ b/xunit.runner.wpf/MainWindow.xaml @@ -98,7 +98,14 @@