diff --git a/tests/Avalonia.Headless.NUnit.UnitTests/AssemblyInfo.cs b/tests/Avalonia.Headless.NUnit.UnitTests/AssemblyInfo.cs
new file mode 100644
index 0000000000..1d5b99eb81
--- /dev/null
+++ b/tests/Avalonia.Headless.NUnit.UnitTests/AssemblyInfo.cs
@@ -0,0 +1,9 @@
+global using NUnit.Framework;
+global using AvaloniaFactAttribute = Avalonia.Headless.NUnit.AvaloniaTestAttribute;
+global using AvaloniaTheoryAttribute = Avalonia.Headless.NUnit.AvaloniaTheoryAttribute;
+global using InlineDataAttribute = NUnit.Framework.TestCaseAttribute;
+
+using Avalonia.Headless;
+using Avalonia.Headless.UnitTests;
+
+[assembly: AvaloniaTestApplication(typeof(TestApplication))]
diff --git a/tests/Avalonia.Headless.NUnit.UnitTests/Avalonia.Headless.NUnit.UnitTests.csproj b/tests/Avalonia.Headless.NUnit.UnitTests/Avalonia.Headless.NUnit.UnitTests.csproj
new file mode 100644
index 0000000000..19a82cb21c
--- /dev/null
+++ b/tests/Avalonia.Headless.NUnit.UnitTests/Avalonia.Headless.NUnit.UnitTests.csproj
@@ -0,0 +1,29 @@
+
+
+ net6.0
+ true
+ $(DefineConstants);NUNIT
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/Avalonia.Headless.UnitTests/InputTests.cs b/tests/Avalonia.Headless.UnitTests/InputTests.cs
index 3c0ecbfdb7..3fcd509fe2 100644
--- a/tests/Avalonia.Headless.UnitTests/InputTests.cs
+++ b/tests/Avalonia.Headless.UnitTests/InputTests.cs
@@ -2,13 +2,12 @@ using Avalonia.Controls;
using Avalonia.Input;
using Avalonia.Layout;
using Avalonia.Threading;
-using Xunit;
namespace Avalonia.Headless.UnitTests;
public class InputTests
{
- [Fact]
+ [AvaloniaFact]
public void Should_Click_Button_On_Window()
{
var buttonClicked = false;
diff --git a/tests/Avalonia.Headless.UnitTests/RenderingTests.cs b/tests/Avalonia.Headless.UnitTests/RenderingTests.cs
index bc50686235..87fdd4ffbb 100644
--- a/tests/Avalonia.Headless.UnitTests/RenderingTests.cs
+++ b/tests/Avalonia.Headless.UnitTests/RenderingTests.cs
@@ -2,13 +2,12 @@
using Avalonia.Layout;
using Avalonia.Media;
using Avalonia.Threading;
-using Xunit;
namespace Avalonia.Headless.UnitTests;
public class RenderingTests
{
- [Fact]
+ [AvaloniaFact]
public void Should_Render_Last_Frame_To_Bitmap()
{
var window = new Window
diff --git a/tests/Avalonia.Headless.UnitTests/TestApplication.cs b/tests/Avalonia.Headless.UnitTests/TestApplication.cs
index 7bfa0144f3..ae923bf52e 100644
--- a/tests/Avalonia.Headless.UnitTests/TestApplication.cs
+++ b/tests/Avalonia.Headless.UnitTests/TestApplication.cs
@@ -1,10 +1,5 @@
using Avalonia.Headless.UnitTests;
-using Avalonia.Headless.XUnit;
using Avalonia.Themes.Simple;
-using Xunit;
-
-[assembly: AvaloniaTestFramework(typeof(TestApplication))]
-[assembly: CollectionBehavior(DisableTestParallelization = true)]
namespace Avalonia.Headless.UnitTests;
diff --git a/tests/Avalonia.Headless.UnitTests/ThreadingTests.cs b/tests/Avalonia.Headless.UnitTests/ThreadingTests.cs
index 419ee5519e..e26b902eb1 100644
--- a/tests/Avalonia.Headless.UnitTests/ThreadingTests.cs
+++ b/tests/Avalonia.Headless.UnitTests/ThreadingTests.cs
@@ -2,31 +2,37 @@
using System.Threading;
using System.Threading.Tasks;
using Avalonia.Threading;
-using Xunit;
namespace Avalonia.Headless.UnitTests;
public class ThreadingTests
{
- [Fact]
+ [AvaloniaFact]
public void Should_Be_On_Dispatcher_Thread()
{
Dispatcher.UIThread.VerifyAccess();
}
- [Fact]
- public async Task DispatcherTimer_Works_On_The_Same_Thread()
+ [AvaloniaTheory]
+ [InlineData(1)]
+ [InlineData(10)]
+ [InlineData(100)]
+ public async Task DispatcherTimer_Works_On_The_Same_Thread(int interval)
{
+ await Task.Delay(100);
+
var currentThread = Thread.CurrentThread;
var tcs = new TaskCompletionSource();
+ var hasCompleted = false;
DispatcherTimer.RunOnce(() =>
{
- Assert.Equal(currentThread, Thread.CurrentThread);
+ hasCompleted = currentThread == Thread.CurrentThread;
tcs.SetResult();
- }, TimeSpan.FromTicks(1));
+ }, TimeSpan.FromTicks(interval));
- await tcs.Task;
+ await tcs.Task;
+ Assert.True(hasCompleted);
}
}
diff --git a/tests/Avalonia.Headless.XUnit.UnitTests/AssemblyInfo.cs b/tests/Avalonia.Headless.XUnit.UnitTests/AssemblyInfo.cs
new file mode 100644
index 0000000000..3e4629907a
--- /dev/null
+++ b/tests/Avalonia.Headless.XUnit.UnitTests/AssemblyInfo.cs
@@ -0,0 +1,7 @@
+global using Xunit;
+global using Avalonia.Headless.XUnit;
+using Avalonia.Headless;
+using Avalonia.Headless.UnitTests;
+using Avalonia.Headless.XUnit;
+
+[assembly: AvaloniaTestApplication(typeof(TestApplication))]
diff --git a/tests/Avalonia.Headless.UnitTests/Avalonia.Headless.UnitTests.csproj b/tests/Avalonia.Headless.XUnit.UnitTests/Avalonia.Headless.XUnit.UnitTests.csproj
similarity index 83%
rename from tests/Avalonia.Headless.UnitTests/Avalonia.Headless.UnitTests.csproj
rename to tests/Avalonia.Headless.XUnit.UnitTests/Avalonia.Headless.XUnit.UnitTests.csproj
index 78a3ab186e..25578c3ad8 100644
--- a/tests/Avalonia.Headless.UnitTests/Avalonia.Headless.UnitTests.csproj
+++ b/tests/Avalonia.Headless.XUnit.UnitTests/Avalonia.Headless.XUnit.UnitTests.csproj
@@ -1,9 +1,10 @@
-
net6.0
true
+ $(DefineConstants);XUNIT
+
@@ -11,6 +12,10 @@
+
+
+
+