Skip to content

Commit cd5caa1

Browse files
committed
Merge branch 'master' into release
2 parents 86a6cfd + de339f0 commit cd5caa1

39 files changed

+700
-165
lines changed

AxoCover.Common/Extensions/GenericExtensions.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,19 @@ public static TItem Item<TItem>(this TItem[] items, int index)
278278
return default(TItem);
279279
}
280280
}
281+
282+
[Conditional("DEBUG")]
283+
public static void Debug()
284+
{
285+
if (Debugger.IsAttached)
286+
{
287+
Debugger.Break();
288+
}
289+
else
290+
{
291+
Debugger.Launch();
292+
}
293+
}
281294
}
282295

283296
public interface IFileSource

AxoCover.Dependencies/packages.config

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
33
<package id="Microsoft.TestPlatform.ObjectModel" version="11.0.0" targetFramework="net45" />
4-
<package id="MSTest.TestAdapter" version="1.1.18" targetFramework="net46" />
5-
<package id="MSTest.TestFramework" version="1.1.18" targetFramework="net46" />
4+
<package id="MSTest.TestAdapter" version="1.2.1" targetFramework="net46" />
5+
<package id="MSTest.TestFramework" version="1.2.1" targetFramework="net46" />
66
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="net45" />
77
<package id="NUnit3TestAdapter.AxoCover" version="1.0.3" targetFramework="net45" />
88
<package id="NUnitTestAdapter" version="2.1.1" targetFramework="net45" />
99
<package id="OpenCover.AxoCover" version="1.0.0" targetFramework="net45" />
10-
<package id="ReportGenerator" version="3.1.1" targetFramework="net45" />
10+
<package id="ReportGenerator" version="3.1.2" targetFramework="net45" />
1111
<package id="xunit.assert" version="2.2.0" targetFramework="net46" />
1212
<package id="xunit.extensibility.core" version="2.2.0" targetFramework="net46" />
1313
<package id="xunit.extensibility.execution" version="2.2.0" targetFramework="net46" />

AxoCover/AxoCover.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
</PropertyGroup>
6565
<PropertyGroup Condition="'$(APPVEYOR)' == ''">
6666
<DeployExtension>True</DeployExtension>
67-
</PropertyGroup>
67+
</PropertyGroup>
6868
<ItemGroup>
6969
<Reference Include="envdte, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
7070
<HintPath>..\packages\VSSDK.DTE.7.0.4\lib\net20\envdte.dll</HintPath>
@@ -287,6 +287,7 @@
287287
<Compile Include="Converters\NullToVisibilityConverter.cs" />
288288
<Compile Include="Converters\SingleItemToCollectionConverter.cs" />
289289
<Compile Include="Converters\StringEqualityToVisibilityConverter.cs" />
290+
<Compile Include="Converters\TimeSpanFormatter.cs" />
290291
<Compile Include="LineCoverageAdornment.cs" />
291292
<Compile Include="Models\Testing\Adapters\ITestAdapterRepository.cs" />
292293
<Compile Include="Models\Testing\Adapters\MsTest1Adapter.cs" />
@@ -532,7 +533,6 @@
532533
<Resource Include="Resources\unknown.png" />
533534
<Resource Include="Resources\autocover.png" />
534535
<Resource Include="Resources\scheduled.png" />
535-
<Resource Include="Resources\expand.png" />
536536
<Resource Include="Resources\inconclusive.png" />
537537
<Resource Include="Resources\error.png" />
538538
<Resource Include="Resources\failed.png" />

AxoCover/Commands/TestCommands.cs

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ public class SelectTestCommand : TestCommand { }
3232

3333
public class JumpToTestCommand : TestCommand { }
3434

35-
public class DebugTestCommand : TestCommand
35+
public abstract class RunnerTestCommand : TestCommand
3636
{
3737
private readonly ITestRunner _testRunner;
3838

39-
public DebugTestCommand(ITestRunner testRunner)
39+
public RunnerTestCommand(ITestRunner testRunner)
4040
{
4141
_testRunner = testRunner;
4242
_testRunner.TestsStarted += (o, e) => RefreshCanExecuteChanged();
@@ -48,4 +48,28 @@ public override bool CanExecute(object parameter)
4848
return base.CanExecute(parameter) && !_testRunner.IsBusy;
4949
}
5050
}
51+
52+
public class RunTestCommand : RunnerTestCommand
53+
{
54+
public RunTestCommand(ITestRunner testRunner) : base(testRunner)
55+
{
56+
57+
}
58+
}
59+
60+
public class CoverTestCommand : RunnerTestCommand
61+
{
62+
public CoverTestCommand(ITestRunner testRunner) : base(testRunner)
63+
{
64+
65+
}
66+
}
67+
68+
public class DebugTestCommand : RunnerTestCommand
69+
{
70+
public DebugTestCommand(ITestRunner testRunner) : base(testRunner)
71+
{
72+
73+
}
74+
}
5175
}

AxoCover/Controls/Styles.xaml

Lines changed: 39 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
<Style.Triggers>
1010
<Trigger Property="controls:StyleManager.IsHighlighted" Value="True">
1111
<Setter Property="TextElement.Foreground" Value="{DynamicResource {x:Static vsui:EnvironmentColors.ComboBoxMouseDownGlyphBrushKey}}"/>
12-
</Trigger>
13-
</Style.Triggers>
12+
</Trigger>
13+
</Style.Triggers>
1414
</Style>
1515

1616
<Style TargetType="TextBlock">
@@ -38,7 +38,16 @@
3838
</Setter.Value>
3939
</Setter>
4040
</Style>
41-
41+
42+
<Style TargetType="Path">
43+
<Setter Property="Fill" Value="{DynamicResource {x:Static vsui:EnvironmentColors.ToolWindowTextBrushKey}}"/>
44+
<Style.Triggers>
45+
<Trigger Property="controls:StyleManager.IsHighlighted" Value="True">
46+
<Setter Property="Fill" Value="{DynamicResource {x:Static vsui:EnvironmentColors.ComboBoxMouseDownGlyphBrushKey}}"/>
47+
</Trigger>
48+
</Style.Triggers>
49+
</Style>
50+
4251
<Style TargetType="Button">
4352
<Setter Property="Foreground" Value="{DynamicResource {x:Static vsui:EnvironmentColors.ToolWindowTextBrushKey}}"/>
4453
<Setter Property="Padding" Value="4"/>
@@ -123,6 +132,7 @@
123132

124133
<Style TargetType="ListBoxItem">
125134
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
135+
<Setter Property="Foreground" Value="{DynamicResource {x:Static vsui:EnvironmentColors.ToolWindowTextBrushKey}}" />
126136
<Setter Property="Template">
127137
<Setter.Value>
128138
<ControlTemplate TargetType="ListBoxItem">
@@ -149,6 +159,11 @@
149159
</ControlTemplate>
150160
</Setter.Value>
151161
</Setter>
162+
<Style.Triggers>
163+
<Trigger Property="IsSelected" Value="True">
164+
<Setter Property="Foreground" Value="{DynamicResource {x:Static vsui:EnvironmentColors.ComboBoxMouseDownGlyphBrushKey}}"/>
165+
</Trigger>
166+
</Style.Triggers>
152167
</Style>
153168

154169
<Style TargetType="ListBoxItem" x:Key="RadioButtonListBoxItem">
@@ -173,7 +188,8 @@
173188
<Setter.Value>
174189
<ControlTemplate TargetType="ListBox">
175190
<Grid>
176-
<ScrollViewer Background="{DynamicResource {x:Static vsui:EnvironmentColors.ToolWindowBackgroundBrushKey}}" HorizontalScrollBarVisibility="Auto">
191+
<ScrollViewer Background="{DynamicResource {x:Static vsui:EnvironmentColors.ToolWindowBackgroundBrushKey}}"
192+
HorizontalScrollBarVisibility="Disabled">
177193
<ItemsPresenter />
178194
</ScrollViewer>
179195
</Grid>
@@ -662,6 +678,11 @@
662678
</ControlTemplate>
663679
</Setter.Value>
664680
</Setter>
681+
<Style.Triggers>
682+
<Trigger Property="IsSelected" Value="True">
683+
<Setter Property="Foreground" Value="{DynamicResource {x:Static vsui:EnvironmentColors.ComboBoxMouseDownGlyphBrushKey}}"/>
684+
</Trigger>
685+
</Style.Triggers>
665686
</Style>
666687

667688
<Style TargetType="ContextMenu">
@@ -685,6 +706,17 @@
685706
</Style>
686707

687708
<Style TargetType="MenuItem">
709+
<Style.Triggers>
710+
<Trigger Property="Header" Value="-">
711+
<Setter Property="Template">
712+
<Setter.Value>
713+
<ControlTemplate TargetType="MenuItem">
714+
<Separator Margin="3,0"/>
715+
</ControlTemplate>
716+
</Setter.Value>
717+
</Setter>
718+
</Trigger>
719+
</Style.Triggers>
688720
<Setter Property="Template">
689721
<Setter.Value>
690722
<ControlTemplate TargetType="MenuItem">
@@ -741,10 +773,11 @@
741773
</Style>
742774

743775
<Style TargetType="Separator">
776+
<Setter Property="Margin" Value="3"/>
744777
<Setter Property="Template">
745778
<Setter.Value>
746779
<ControlTemplate TargetType="Separator">
747-
<Border Margin="3,3" Height="1" Opacity="0.5"
780+
<Border Margin="{TemplateBinding Margin}" Height="1" Opacity="0.5"
748781
Background="{DynamicResource {x:Static vsui:EnvironmentColors.ToolWindowTextBrushKey}}"/>
749782
</ControlTemplate>
750783
</Setter.Value>
@@ -774,7 +807,7 @@
774807
<Path HorizontalAlignment="Center"
775808
VerticalAlignment="Center"
776809
Data="M 0 0 L 4 4 L 8 0 Z"
777-
Fill="{DynamicResource {x:Static vsui:EnvironmentColors.ToolWindowTextBrushKey}}"/>
810+
Style="{StaticResource {x:Type Path}}"/>
778811
</Border>
779812
<Grid Margin="3" Background="Transparent">
780813
<ContentPresenter x:Name="_content"
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Globalization;
4+
using System.Linq;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
using System.Windows;
8+
using System.Windows.Data;
9+
10+
namespace AxoCover.Converters
11+
{
12+
public class TimeSpanFormatter : IValueConverter
13+
{
14+
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
15+
{
16+
if(value is TimeSpan time)
17+
{
18+
if(time.TotalMilliseconds < 1)
19+
{
20+
return $"{time.TotalMilliseconds*1000:G3} μs";
21+
}
22+
else if(time.TotalSeconds < 1)
23+
{
24+
return $"{time.TotalMilliseconds:G3} ms";
25+
}
26+
else if (time.TotalMinutes < 1)
27+
{
28+
return $"{time.TotalSeconds:G3} s";
29+
}
30+
else
31+
{
32+
return $"{time.TotalMinutes:G3} min";
33+
}
34+
}
35+
else
36+
{
37+
return DependencyProperty.UnsetValue;
38+
}
39+
}
40+
41+
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
42+
{
43+
throw new NotSupportedException();
44+
}
45+
}
46+
}

0 commit comments

Comments
 (0)