Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
29f9d7a
added more f# tests
licon4812 May 21, 2025
4a44c66
Update Tests.fs
licon4812 May 21, 2025
b440fb2
Added CustomSkipAttribute to F# Example Test Project
licon4812 May 21, 2025
70cc7eb
reordered tests
licon4812 May 21, 2025
bc1a66d
Update Tests.fs
licon4812 May 21, 2025
487b66f
Updated FSharp Testing namespace
licon4812 May 21, 2025
141dbc6
Update Tests.fs
licon4812 May 21, 2025
880a6a6
Update Tests.fs
licon4812 May 21, 2025
1b4e6cb
Merge branch 'main' into f#-tests
licon4812 May 21, 2025
6667988
Merge remote-tracking branch 'upstream/main' into f#-tests
licon4812 May 21, 2025
0b35603
Update Tests.fs
licon4812 May 21, 2025
6e84232
Update Tests.fs
licon4812 May 21, 2025
ba26b75
Merge branch 'main' into f#-tests
licon4812 May 22, 2025
0def8b3
Merge branch 'main' into f#-tests
licon4812 May 22, 2025
d2d3f74
Added some more tests.
licon4812 May 22, 2025
a5687fb
more tests
licon4812 May 22, 2025
f99c22d
more tests
licon4812 May 22, 2025
5d2c17a
more tests
licon4812 May 22, 2025
d07b976
more tests
licon4812 May 22, 2025
6621332
more tests
licon4812 May 22, 2025
243842f
added fs file references to fsproj in TUnit.TestProject.FSharp.fsproj
licon4812 May 22, 2025
d1c62f0
Update DependencyInjectionClassConstructor.fs
licon4812 May 22, 2025
2ece1e0
Refactor UniqueBuilderContextsOnEnumerableDataGeneratorTests for clar…
licon4812 May 22, 2025
564b489
reorganised some tests in f# test project
licon4812 May 22, 2025
e029045
fixed some f# tests
licon4812 May 22, 2025
3d582e1
more tests
licon4812 May 23, 2025
d058616
small fixes
licon4812 May 23, 2025
cfcefe6
temp fix in F# tests project
licon4812 May 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
more tests
  • Loading branch information
licon4812 committed May 23, 2025
commit 3d582e18e31a3fbeaf54b2dee8a49c50a325ca5e
34 changes: 17 additions & 17 deletions TUnit.TestProject.FSharp/AfterTestAttributeTests.fs
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,22 @@ open TUnit.Core
open TUnit.Assertions.FSharp.Operations


type WriteFileAfterTestAttribute() =
inherit System.Attribute()
interface ITestEndEventReceiver with
member _.OnTestEnd(testContext: AfterTestContext) =
task {
Console.WriteLine("Writing file inside WriteFileAfterTestAttribute!")
do! FilePolyfill.WriteAllTextAsync(filename, "Foo!")
} :> Task
member _.Order = 0
//type WriteFileAfterTestAttribute() =
// inherit System.Attribute()
// interface ITestEndEventReceiver with
// member _.OnTestEnd(testContext: AfterTestContext) =
// task {
// Console.WriteLine("Writing file inside WriteFileAfterTestAttribute!")
// do! FilePolyfill.WriteAllTextAsync(filename, "Foo!")
// } :> Task
// member _.Order = 0

type AfterTestAttributeTests() =
static let filename = sprintf "%s-AfterTestAttributeTests.txt" (Guid.NewGuid().ToString("N"))
//type AfterTestAttributeTests() =
// static let filename = sprintf "%s-AfterTestAttributeTests.txt" (Guid.NewGuid().ToString("N"))

[<Test>]
[<WriteFileAfterTest>]
member _.Test() =
async{
do! check(Assert.That<bool>(File.Exists(filename)).IsFalse())
}
// [<Test>]
// [<WriteFileAfterTest>]
// member _.Test() =
// async{
// do! check(Assert.That<bool>(File.Exists(filename)).IsFalse())
// }
3 changes: 2 additions & 1 deletion TUnit.TestProject.FSharp/ConflictingDependsOnTests3.fs
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@ namespace TUnit.TestProject.FSharp
open System
open System.Threading.Tasks
open TUnit.Core
open System.Diagnostics.CodeAnalysis

[<UnconditionalSuppressMessage("Usage", "TUnit0033:Conflicting DependsOn attributes")>]
[<SuppressMessage("Usage", "TUnit0033:Conflicting DependsOn attributes")>]
type ConflictingDependsOnTests3() =
[<Test>]
[<DependsOn("Test5")>]
Expand Down
207 changes: 117 additions & 90 deletions TUnit.TestProject.FSharp/Inject_SharedInstancePerKey.fs
Original file line number Diff line number Diff line change
Expand Up @@ -16,44 +16,53 @@ type InjectSharedPerKey1(dummyReferenceTypeClass: DummyReferenceTypeClass) =
[<Test>]
[<Repeat(5)>]
member _.Test1() = task {
let testName = TestContext.Current.Value.TestDetails.TestName
let found, list = SharedInjectedKeyedContainer.instancesPerKey.TryGetValue(testName)
if found && list.Count > 0 then
do! Assert.That(list).Contains(dummyReferenceTypeClass)
for KeyValue(k, v) in SharedInjectedKeyedContainer.instancesPerKey do
if k <> testName then
do! Assert.That(list).DoesNotContain(dummyReferenceTypeClass)
let l = SharedInjectedKeyedContainer.instancesPerKey.GetOrAdd(testName, fun _ -> ResizeArray())
l.Add(dummyReferenceTypeClass)
do! Assert.That(l.Distinct()).HasSingleItem()
match TestContext.Current with
| null -> failwith "TestContext.Current is null"
| ctx ->
let testName = ctx.TestDetails.TestName
let found, list = SharedInjectedKeyedContainer.instancesPerKey.TryGetValue(testName)
if found && list.Count > 0 then
do! Assert.That(list).Contains(dummyReferenceTypeClass)
for KeyValue(k, v) in SharedInjectedKeyedContainer.instancesPerKey do
if k <> testName then
do! Assert.That(list).DoesNotContain(dummyReferenceTypeClass)
let l = SharedInjectedKeyedContainer.instancesPerKey.GetOrAdd(testName, fun _ -> ResizeArray())
l.Add(dummyReferenceTypeClass)
do! Assert.That(l.Distinct()).HasSingleItem()
}
[<Test>]
[<Repeat(5)>]
member _.Test2() = task {
let testName = TestContext.Current.Value.TestDetails.TestName
let found, list = SharedInjectedKeyedContainer.instancesPerKey.TryGetValue(testName)
if found && list.Count > 0 then
do! Assert.That(list).Contains(dummyReferenceTypeClass)
for KeyValue(k, v) in SharedInjectedKeyedContainer.instancesPerKey do
if k <> testName then
do! Assert.That(list).DoesNotContain(dummyReferenceTypeClass)
let l = SharedInjectedKeyedContainer.instancesPerKey.GetOrAdd(testName, fun _ -> ResizeArray())
l.Add(dummyReferenceTypeClass)
do! Assert.That(l.Distinct()).HasSingleItem()
match TestContext.Current with
| null -> failwith "TestContext.Current is null"
| ctx ->
let testName = ctx.TestDetails.TestName
let found, list = SharedInjectedKeyedContainer.instancesPerKey.TryGetValue(testName)
if found && list.Count > 0 then
do! Assert.That(list).Contains(dummyReferenceTypeClass)
for KeyValue(k, v) in SharedInjectedKeyedContainer.instancesPerKey do
if k <> testName then
do! Assert.That(list).DoesNotContain(dummyReferenceTypeClass)
let l = SharedInjectedKeyedContainer.instancesPerKey.GetOrAdd(testName, fun _ -> ResizeArray())
l.Add(dummyReferenceTypeClass)
do! Assert.That(l.Distinct()).HasSingleItem()
}
[<Test>]
[<Repeat(5)>]
member _.Test3() = task {
let testName = TestContext.Current.Value.TestDetails.TestName
let found, list = SharedInjectedKeyedContainer.instancesPerKey.TryGetValue(testName)
if found && list.Count > 0 then
do! Assert.That(list).Contains(dummyReferenceTypeClass)
for KeyValue(k, v) in SharedInjectedKeyedContainer.instancesPerKey do
if k <> testName then
do! Assert.That(list).DoesNotContain(dummyReferenceTypeClass)
let l = SharedInjectedKeyedContainer.instancesPerKey.GetOrAdd(testName, fun _ -> ResizeArray())
l.Add(dummyReferenceTypeClass)
do! Assert.That(l.Distinct()).HasSingleItem()
match TestContext.Current with
| null -> failwith "TestContext.Current is null"
| ctx ->
let testName = ctx.TestDetails.TestName
let found, list = SharedInjectedKeyedContainer.instancesPerKey.TryGetValue(testName)
if found && list.Count > 0 then
do! Assert.That(list).Contains(dummyReferenceTypeClass)
for KeyValue(k, v) in SharedInjectedKeyedContainer.instancesPerKey do
if k <> testName then
do! Assert.That(list).DoesNotContain(dummyReferenceTypeClass)
let l = SharedInjectedKeyedContainer.instancesPerKey.GetOrAdd(testName, fun _ -> ResizeArray())
l.Add(dummyReferenceTypeClass)
do! Assert.That(l.Distinct()).HasSingleItem()
}

[<ClassDataSource(typeof<DummyReferenceTypeClass>, Shared=SharedType.PerClass)>]
Expand All @@ -62,44 +71,53 @@ type InjectSharedPerKey2(dummyReferenceTypeClass: DummyReferenceTypeClass) =
[<Test>]
[<Repeat(5)>]
member _.Test1() = task {
let testName = TestContext.Current.Value.TestDetails.TestName
let found, list = SharedInjectedKeyedContainer.instancesPerKey.TryGetValue(testName)
if found && list.Count > 0 then
do! Assert.That(list).Contains(dummyReferenceTypeClass)
for KeyValue(k, v) in SharedInjectedKeyedContainer.instancesPerKey do
if k <> testName then
do! Assert.That(list).DoesNotContain(dummyReferenceTypeClass)
let l = SharedInjectedKeyedContainer.instancesPerKey.GetOrAdd(testName, fun _ -> ResizeArray())
l.Add(dummyReferenceTypeClass)
do! Assert.That(l.Distinct()).HasSingleItem()
match TestContext.Current with
| null -> failwith "TestContext.Current is null"
| ctx ->
let testName = ctx.TestDetails.TestName
let found, list = SharedInjectedKeyedContainer.instancesPerKey.TryGetValue(testName)
if found && list.Count > 0 then
do! Assert.That(list).Contains(dummyReferenceTypeClass)
for KeyValue(k, v) in SharedInjectedKeyedContainer.instancesPerKey do
if k <> testName then
do! Assert.That(list).DoesNotContain(dummyReferenceTypeClass)
let l = SharedInjectedKeyedContainer.instancesPerKey.GetOrAdd(testName, fun _ -> ResizeArray())
l.Add(dummyReferenceTypeClass)
do! Assert.That(l.Distinct()).HasSingleItem()
}
[<Test>]
[<Repeat(5)>]
member _.Test2() = task {
let testName = TestContext.Current.Value.TestDetails.TestName
let found, list = SharedInjectedKeyedContainer.instancesPerKey.TryGetValue(testName)
if found && list.Count > 0 then
do! Assert.That(list).Contains(dummyReferenceTypeClass)
for KeyValue(k, v) in SharedInjectedKeyedContainer.instancesPerKey do
if k <> testName then
do! Assert.That(list).DoesNotContain(dummyReferenceTypeClass)
let l = SharedInjectedKeyedContainer.instancesPerKey.GetOrAdd(testName, fun _ -> ResizeArray())
l.Add(dummyReferenceTypeClass)
do! Assert.That(l.Distinct()).HasSingleItem()
match TestContext.Current with
| null -> failwith "TestContext.Current is null"
| ctx ->
let testName = ctx.TestDetails.TestName
let found, list = SharedInjectedKeyedContainer.instancesPerKey.TryGetValue(testName)
if found && list.Count > 0 then
do! Assert.That(list).Contains(dummyReferenceTypeClass)
for KeyValue(k, v) in SharedInjectedKeyedContainer.instancesPerKey do
if k <> testName then
do! Assert.That(list).DoesNotContain(dummyReferenceTypeClass)
let l = SharedInjectedKeyedContainer.instancesPerKey.GetOrAdd(testName, fun _ -> ResizeArray())
l.Add(dummyReferenceTypeClass)
do! Assert.That(l.Distinct()).HasSingleItem()
}
[<Test>]
[<Repeat(5)>]
member _.Test3() = task {
let testName = TestContext.Current.Value.TestDetails.TestName
let found, list = SharedInjectedKeyedContainer.instancesPerKey.TryGetValue(testName)
if found && list.Count > 0 then
do! Assert.That(list).Contains(dummyReferenceTypeClass)
for KeyValue(k, v) in SharedInjectedKeyedContainer.instancesPerKey do
if k <> testName then
do! Assert.That(list).DoesNotContain(dummyReferenceTypeClass)
let l = SharedInjectedKeyedContainer.instancesPerKey.GetOrAdd(testName, fun _ -> ResizeArray())
l.Add(dummyReferenceTypeClass)
do! Assert.That(l.Distinct()).HasSingleItem()
match TestContext.Current with
| null -> failwith "TestContext.Current is null"
| ctx ->
let testName = ctx.TestDetails.TestName
let found, list = SharedInjectedKeyedContainer.instancesPerKey.TryGetValue(testName)
if found && list.Count > 0 then
do! Assert.That(list).Contains(dummyReferenceTypeClass)
for KeyValue(k, v) in SharedInjectedKeyedContainer.instancesPerKey do
if k <> testName then
do! Assert.That(list).DoesNotContain(dummyReferenceTypeClass)
let l = SharedInjectedKeyedContainer.instancesPerKey.GetOrAdd(testName, fun _ -> ResizeArray())
l.Add(dummyReferenceTypeClass)
do! Assert.That(l.Distinct()).HasSingleItem()
}

[<ClassDataSource(typeof<DummyReferenceTypeClass>, Shared=SharedType.PerClass)>]
Expand All @@ -108,42 +126,51 @@ type InjectSharedPerKey3(dummyReferenceTypeClass: DummyReferenceTypeClass) =
[<Test>]
[<Repeat(5)>]
member _.Test1() = task {
let testName = TestContext.Current.Value.TestDetails.TestName
let found, list = SharedInjectedKeyedContainer.instancesPerKey.TryGetValue(testName)
if found && list.Count > 0 then
do! Assert.That(list).Contains(dummyReferenceTypeClass)
for KeyValue(k, v) in SharedInjectedKeyedContainer.instancesPerKey do
if k <> testName then
do! Assert.That(list).DoesNotContain(dummyReferenceTypeClass)
let l = SharedInjectedKeyedContainer.instancesPerKey.GetOrAdd(testName, fun _ -> ResizeArray())
l.Add(dummyReferenceTypeClass)
do! Assert.That(l.Distinct()).HasSingleItem()
match TestContext.Current with
| null -> failwith "TestContext.Current is null"
| ctx ->
let testName = ctx.TestDetails.TestName
let found, list = SharedInjectedKeyedContainer.instancesPerKey.TryGetValue(testName)
if found && list.Count > 0 then
do! Assert.That(list).Contains(dummyReferenceTypeClass)
for KeyValue(k, v) in SharedInjectedKeyedContainer.instancesPerKey do
if k <> testName then
do! Assert.That(list).DoesNotContain(dummyReferenceTypeClass)
let l = SharedInjectedKeyedContainer.instancesPerKey.GetOrAdd(testName, fun _ -> ResizeArray())
l.Add(dummyReferenceTypeClass)
do! Assert.That(l.Distinct()).HasSingleItem()
}
[<Test>]
[<Repeat(5)>]
member _.Test2() = task {
let testName = TestContext.Current.Value.TestDetails.TestName
let found, list = SharedInjectedKeyedContainer.instancesPerKey.TryGetValue(testName)
if found && list.Count > 0 then
do! Assert.That(list).Contains(dummyReferenceTypeClass)
for KeyValue(k, v) in SharedInjectedKeyedContainer.instancesPerKey do
if k <> testName then
do! Assert.That(list).DoesNotContain(dummyReferenceTypeClass)
let l = SharedInjectedKeyedContainer.instancesPerKey.GetOrAdd(testName, fun _ -> ResizeArray())
l.Add(dummyReferenceTypeClass)
do! Assert.That(l.Distinct()).HasSingleItem()
match TestContext.Current with
| null -> failwith "TestContext.Current is null"
| ctx ->
let testName = ctx.TestDetails.TestName
let found, list = SharedInjectedKeyedContainer.instancesPerKey.TryGetValue(testName)
if found && list.Count > 0 then
do! Assert.That(list).Contains(dummyReferenceTypeClass)
for KeyValue(k, v) in SharedInjectedKeyedContainer.instancesPerKey do
if k <> testName then
do! Assert.That(list).DoesNotContain(dummyReferenceTypeClass)
let l = SharedInjectedKeyedContainer.instancesPerKey.GetOrAdd(testName, fun _ -> ResizeArray())
l.Add(dummyReferenceTypeClass)
do! Assert.That(l.Distinct()).HasSingleItem()
}
[<Test>]
[<Repeat(5)>]
member _.Test3() = task {
let testName = TestContext.Current.Value.TestDetails.TestName
let found, list = SharedInjectedKeyedContainer.instancesPerKey.TryGetValue(testName)
if found && list.Count > 0 then
do! Assert.That(list).Contains(dummyReferenceTypeClass)
for KeyValue(k, v) in SharedInjectedKeyedContainer.instancesPerKey do
if k <> testName then
do! Assert.That(list).DoesNotContain(dummyReferenceTypeClass)
let l = SharedInjectedKeyedContainer.instancesPerKey.GetOrAdd(testName, fun _ -> ResizeArray())
l.Add(dummyReferenceTypeClass)
do! Assert.That(l.Distinct()).HasSingleItem()
match TestContext.Current with
| null -> failwith "TestContext.Current is null"
| ctx ->
let testName = ctx.TestDetails.TestName
let found, list = SharedInjectedKeyedContainer.instancesPerKey.TryGetValue(testName)
if found && list.Count > 0 then
do! Assert.That(list).Contains(dummyReferenceTypeClass)
for KeyValue(k, v) in SharedInjectedKeyedContainer.instancesPerKey do
if k <> testName then
do! Assert.That(list).DoesNotContain(dummyReferenceTypeClass)
let l = SharedInjectedKeyedContainer.instancesPerKey.GetOrAdd(testName, fun _ -> ResizeArray())
l.Add(dummyReferenceTypeClass)
do! Assert.That(l.Distinct()).HasSingleItem()
}
2 changes: 1 addition & 1 deletion TUnit.TestProject.FSharp/NotInParallelTests.fs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ type NotInParallelTests() =

[<After(HookType.Test)>]
member _.TestOverlaps() : Task = task {
testDateTimeRanges.Add(DateTimeRange(TestContext.Current.Value.TestStart.Value.DateTime, TestContext.Current.Value.Result.Value.End.Value.DateTime))
testDateTimeRanges.Add(DateTimeRange(TestContext.Current.TestStart.Value.DateTime, TestContext.Current.Result.End.Value.DateTime))
do! NotInParallelTests.AssertNoOverlaps()
}

Expand Down
1 change: 0 additions & 1 deletion TUnit.TestProject.FSharp/TUnit.TestProject.FSharp.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
<Compile Include="ConsoleConcurrentTests.fs" />
<Compile Include="DataDrivenTests.fs" />
<Compile Include="DeepNestedDependencyConflict.fs" />
<Compile Include="DependencyInjectionClassConstructor.fs" />
<Compile Include="DynamicCodeOnlyAttribute.fs" />
<Compile Include="DynamicallyRegisteredTests.fs" />
<Compile Include="EnumerableDataSourceDrivenTests.fs" />
Expand Down