diff --git a/ARCtrl.sln b/ARCtrl.sln
index dc915876..a7b85852 100644
--- a/ARCtrl.sln
+++ b/ARCtrl.sln
@@ -93,6 +93,8 @@ Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "ARCtrl.ROCrate", "src\ROCra
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "ARCtrl.ROCrate.Tests", "tests\ROCrate\ARCtrl.ROCrate.Tests.fsproj", "{212A1C64-02FC-465A-B0FA-F69735F37ACC}"
EndProject
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "All.Tests", "tests\All\All.Tests.fsproj", "{243ACD5F-10AD-4BE6-9932-829667BE2053}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -187,6 +189,10 @@ Global
{212A1C64-02FC-465A-B0FA-F69735F37ACC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{212A1C64-02FC-465A-B0FA-F69735F37ACC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{212A1C64-02FC-465A-B0FA-F69735F37ACC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {243ACD5F-10AD-4BE6-9932-829667BE2053}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {243ACD5F-10AD-4BE6-9932-829667BE2053}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {243ACD5F-10AD-4BE6-9932-829667BE2053}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {243ACD5F-10AD-4BE6-9932-829667BE2053}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -215,6 +221,7 @@ Global
{D10D12C7-B877-423B-867D-161D99E673C9} = {64B34A6E-318D-4E6E-9262-CE52C9B85A38}
{658BF141-B4B5-4B90-891D-AC36A3FD7574} = {6DA2330B-D407-4FB1-AF05-B0184034EC44}
{212A1C64-02FC-465A-B0FA-F69735F37ACC} = {64B34A6E-318D-4E6E-9262-CE52C9B85A38}
+ {243ACD5F-10AD-4BE6-9932-829667BE2053} = {64B34A6E-318D-4E6E-9262-CE52C9B85A38}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {1E354DE6-99BA-421E-9EF8-E808B855A85F}
diff --git a/build/ProjectInfo.fs b/build/ProjectInfo.fs
index 4101ad6b..d2ea6afb 100644
--- a/build/ProjectInfo.fs
+++ b/build/ProjectInfo.fs
@@ -8,15 +8,16 @@ let project = "ARCtrl"
/// Dotnet and JS test paths
let testProjects =
[
- "tests/Core"
- "tests/Json"
- "tests/Spreadsheet"
- "tests/FileSystem"
- "tests/ARCtrl"
- "tests/Yaml"
- "tests/ValidationPackages"
- "tests/Contract"
- "tests/ROCrate"
+ "tests/All"
+ //"tests/Core"
+ //"tests/Json"
+ //"tests/Spreadsheet"
+ //"tests/FileSystem"
+ //"tests/ARCtrl"
+ //"tests/Yaml"
+ //"tests/ValidationPackages"
+ //"tests/Contract"
+ //"tests/ROCrate"
]
/// Native JS test paths
diff --git a/build/TestTasks.fs b/build/TestTasks.fs
index d1594259..3c3cbd1c 100644
--- a/build/TestTasks.fs
+++ b/build/TestTasks.fs
@@ -9,6 +9,8 @@ open Fake.Core
module RunTests =
+ let skipTestsFlag = "--skipTests"
+
let runTestsUI = BuildTask.create "runTestsUI" [clean; build] {
let path = "tests/UI"
Trace.traceImportant "Start UI tests"
@@ -18,46 +20,65 @@ module RunTests =
run npx $"cypress run --component -P {path}" ""
}
- let runTestsJsNative = BuildTask.create "runTestsJSNative" [clean; build] {
- Trace.traceImportant "Start native JavaScript tests"
- for path in ProjectInfo.jsTestProjects do
- // transpile library for native access
- run dotnet $"fable src/ARCtrl/ARCtrl.Javascript.fsproj -o {path}/ARCtrl" ""
- GenerateIndexJs.ARCtrl_generate($"{path}/ARCtrl")
- run npx $"mocha {path} --timeout 20000" ""
- }
+ let runTestsJsNative = BuildTask.createFn "runTestsJSNative" [clean; build] (fun tp ->
+ if tp.Context.Arguments |> List.exists (fun a -> a.ToLower() = skipTestsFlag.ToLower()) |> not then
+ Trace.traceImportant "Start native JavaScript tests"
+ for path in ProjectInfo.jsTestProjects do
+ // transpile library for native access
+ run dotnet $"fable src/ARCtrl/ARCtrl.Javascript.fsproj -o {path}/ARCtrl --nocache" ""
+ GenerateIndexJs.ARCtrl_generate($"{path}/ARCtrl")
+ run npx $"mocha {path} --timeout 20000" ""
+ else
+ Trace.traceImportant "Skipping JavaScript tests"
+ )
- let runTestsJs = BuildTask.create "runTestsJS" [clean; build] {
- for path in ProjectInfo.testProjects do
- // transpile js files from fsharp code
- run dotnet $"fable {path} -o {path}/js" ""
- // run mocha in target path to execute tests
- // "--timeout 20000" is used, because json schema validation takes a bit of time.
- run node $"{path}/js/Main.js" ""
- }
+ let runTestsJs = BuildTask.createFn "runTestsJS" [clean; build] (fun tp ->
+ if tp.Context.Arguments |> List.exists (fun a -> a.ToLower() = skipTestsFlag.ToLower()) |> not then
+ Trace.traceImportant "Start Js tests"
+ for path in ProjectInfo.testProjects do
+ // transpile js files from fsharp code
+ run dotnet $"fable {path} -o {path}/js --nocache" ""
+ // run mocha in target path to execute tests
+ // "--timeout 20000" is used, because json schema validation takes a bit of time.
+ run node $"{path}/js/Main.js" ""
+ else
+ Trace.traceImportant "Skipping Js tests"
+ )
- let runTestsPyNative = BuildTask.create "runTestsPyNative" [clean; build] {
- Trace.traceImportant "Start native Python tests"
- for path in ProjectInfo.pyTestProjects do
- // transpile library for native access
- run dotnet $"fable src/ARCtrl/ARCtrl.Python.fsproj -o {path}/ARCtrl --lang python" ""
- GenerateIndexPy.ARCtrl_generate($"{path}/ARCtrl")
- run python $"-m pytest {path}" ""
- }
+ let runTestsPyNative = BuildTask.createFn "runTestsPyNative" [clean; build] (fun tp ->
+ if tp.Context.Arguments |> List.exists (fun a -> a.ToLower() = skipTestsFlag.ToLower()) |> not then
+ Trace.traceImportant "Start native Python tests"
+ for path in ProjectInfo.pyTestProjects do
+ // transpile library for native access
+ run dotnet $"fable src/ARCtrl/ARCtrl.Python.fsproj -o {path}/ARCtrl --lang python --nocache" ""
+ GenerateIndexPy.ARCtrl_generate($"{path}/ARCtrl")
+ run python $"-m pytest {path}" ""
+ else
+ Trace.traceImportant "Skipping Python tests"
+ )
- let runTestsPy = BuildTask.create "runTestsPy" [clean; build] {
- for path in ProjectInfo.testProjects do
- //transpile py files from fsharp code
- run dotnet $"fable {path} -o {path}/py --lang python" ""
- // run pyxpecto in target path to execute tests in python
- run python $"{path}/py/main.py" ""
- }
+ let runTestsPy = BuildTask.createFn "runTestsPy" [clean; build] (fun tp ->
+ if tp.Context.Arguments |> List.exists (fun a -> a.ToLower() = skipTestsFlag.ToLower()) |> not then
+ Trace.traceImportant "Start Python tests"
+ for path in ProjectInfo.testProjects do
+ //transpile py files from fsharp code
+ run dotnet $"fable {path} -o {path}/py --lang python --nocache" ""
+ // run pyxpecto in target path to execute tests in python
+ run python $"{path}/py/main.py" ""
+ else
+ Trace.traceImportant "Skipping Python tests"
- let runTestsDotnet = BuildTask.create "runTestsDotnet" [clean; build] {
- let dotnetRun = run dotnet "run"
- testProjects
- |> Seq.iter dotnetRun
- }
+ )
+
+ let runTestsDotnet = BuildTask.createFn "runTestsDotnet" [clean; build] (fun tp ->
+ if tp.Context.Arguments |> List.exists (fun a -> a.ToLower() = skipTestsFlag.ToLower()) |> not then
+ Trace.traceImportant "Start .NET tests"
+ let dotnetRun = run dotnet "run"
+ testProjects
+ |> Seq.iter dotnetRun
+ else
+ Trace.traceImportant "Skipping .NET tests"
+ )
let runTestProject = BuildTask.createFn "runTestProject" [clean; build] (fun config ->
let dotnetRun = run dotnet "run"
diff --git a/src/ARCtrl/ARCtrl.Common.props b/src/ARCtrl/ARCtrl.Common.props
index 27b320e9..5633bf3f 100644
--- a/src/ARCtrl/ARCtrl.Common.props
+++ b/src/ARCtrl/ARCtrl.Common.props
@@ -2,7 +2,7 @@
Library for management of Annotated Research Contexts (ARCs) using an in-memory representation and runtime agnostic contract systems.
-
+
diff --git a/src/ARCtrl/ARCtrl.Javascript.fsproj b/src/ARCtrl/ARCtrl.Javascript.fsproj
index e8f618bc..e9a0dc3c 100644
--- a/src/ARCtrl/ARCtrl.Javascript.fsproj
+++ b/src/ARCtrl/ARCtrl.Javascript.fsproj
@@ -7,7 +7,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/ARCtrl/ARCtrl.Python.fsproj b/src/ARCtrl/ARCtrl.Python.fsproj
index fe34c21c..a404cc91 100644
--- a/src/ARCtrl/ARCtrl.Python.fsproj
+++ b/src/ARCtrl/ARCtrl.Python.fsproj
@@ -7,7 +7,52 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/ARCtrl/ARCtrl.fsproj b/src/ARCtrl/ARCtrl.fsproj
index f3b05bdf..3a843e32 100644
--- a/src/ARCtrl/ARCtrl.fsproj
+++ b/src/ARCtrl/ARCtrl.fsproj
@@ -6,8 +6,52 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/ARCtrl/packages.lock.json b/src/ARCtrl/packages.lock.json
index 74c257d7..2b028bdd 100644
--- a/src/ARCtrl/packages.lock.json
+++ b/src/ARCtrl/packages.lock.json
@@ -47,17 +47,17 @@
"arctrl.contract": {
"type": "Project",
"dependencies": {
- "ARCtrl.Core": "[2.1.0, )",
- "ARCtrl.Json": "[2.1.0, )",
- "ARCtrl.Spreadsheet": "[2.1.0, )",
- "ARCtrl.Yaml": "[2.1.0, )"
+ "ARCtrl.Core": "[2.1.0-alpha.3, )",
+ "ARCtrl.Json": "[2.1.0-alpha.3, )",
+ "ARCtrl.Spreadsheet": "[2.1.0-alpha.3, )",
+ "ARCtrl.Yaml": "[2.1.0-alpha.3, )"
}
},
"arctrl.core": {
"type": "Project",
"dependencies": {
- "ARCtrl.CWL": "[2.1.0, )",
- "ARCtrl.FileSystem": "[2.1.0, )"
+ "ARCtrl.CWL": "[2.1.0-alpha.3, )",
+ "ARCtrl.FileSystem": "[2.1.0-alpha.3, )"
}
},
"arctrl.cwl": {
@@ -72,8 +72,8 @@
"arctrl.json": {
"type": "Project",
"dependencies": {
- "ARCtrl.Core": "[2.1.0, )",
- "ARCtrl.ROCrate": "[2.1.0, )",
+ "ARCtrl.Core": "[2.1.0-alpha.3, )",
+ "ARCtrl.ROCrate": "[2.1.0-alpha.3, )",
"Thoth.Json.Core": "[0.4.0, )"
}
},
@@ -87,22 +87,22 @@
"arctrl.spreadsheet": {
"type": "Project",
"dependencies": {
- "ARCtrl.Core": "[2.1.0, )",
- "ARCtrl.FileSystem": "[2.1.0, )",
+ "ARCtrl.Core": "[2.1.0-alpha.3, )",
+ "ARCtrl.FileSystem": "[2.1.0-alpha.3, )",
"FsSpreadsheet": "[6.3.0-alpha.4, )"
}
},
"arctrl.validationpackages": {
"type": "Project",
"dependencies": {
- "ARCtrl.Core": "[2.1.0, )"
+ "ARCtrl.Core": "[2.1.0-alpha.3, )"
}
},
"arctrl.yaml": {
"type": "Project",
"dependencies": {
- "ARCtrl.Core": "[2.1.0, )",
- "ARCtrl.ValidationPackages": "[2.1.0, )",
+ "ARCtrl.Core": "[2.1.0-alpha.3, )",
+ "ARCtrl.ValidationPackages": "[2.1.0-alpha.3, )",
"YAMLicious": "[0.0.1, )"
}
},
diff --git a/tests/ARCtrl/Main.fs b/tests/ARCtrl/Main.fs
index 9f70b9ac..d6ee9af7 100644
--- a/tests/ARCtrl/Main.fs
+++ b/tests/ARCtrl/Main.fs
@@ -1,4 +1,4 @@
-module Main.Tests
+module ARCtrl.ARC.Tests
open Fable.Pyxpecto
@@ -11,5 +11,7 @@ let all = testSequenced <| testList "ARCtrl" [
ARCtrl.Tests.main
]
+#if !TESTS_ALL
[]
+#endif
let main argv = Pyxpecto.runTests [||] all
\ No newline at end of file
diff --git a/tests/All/All.Tests.fsproj b/tests/All/All.Tests.fsproj
new file mode 100644
index 00000000..3a59e902
--- /dev/null
+++ b/tests/All/All.Tests.fsproj
@@ -0,0 +1,27 @@
+
+
+
+ Exe
+ net8.0
+ false
+ TESTS_ALL
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/All/Main.fs b/tests/All/Main.fs
new file mode 100644
index 00000000..7c62a36b
--- /dev/null
+++ b/tests/All/Main.fs
@@ -0,0 +1,20 @@
+module Main.Tests
+
+open Fable.Pyxpecto
+
+let all = testList "All" [
+
+ ARCtrl.Core.Tests.all
+ ARCtrl.Json.Tests.all
+ ARCtrl.Spreadsheet.Tests.all
+ ARCtrl.FileSystem.Tests.all
+ ARCtrl.ARC.Tests.all
+ ARCtrl.Yaml.Tests.all
+ ARCtrl.ValidationPackages.Tests.all
+ ARCtrl.Contract.Tests.all
+ ARCtrl.ROCrate.Tests.all
+
+]
+
+[]
+let main argv = Pyxpecto.runTests [||] all
\ No newline at end of file
diff --git a/tests/Contract/Main.fs b/tests/Contract/Main.fs
index 977fac32..1cb919d2 100644
--- a/tests/Contract/Main.fs
+++ b/tests/Contract/Main.fs
@@ -1,4 +1,4 @@
-module ARCtrl.FileSystem.Tests
+module ARCtrl.Contract.Tests
open Fable.Pyxpecto
@@ -6,5 +6,7 @@ let all = testSequenced <| testList "ValidationPackages" [
Tests.ValidationPackagesConfig.main
]
+#if !TESTS_ALL
[]
+#endif
let main argv = Pyxpecto.runTests [||] all
diff --git a/tests/Core/Main.fs b/tests/Core/Main.fs
index d510bdc5..bd8709d7 100644
--- a/tests/Core/Main.fs
+++ b/tests/Core/Main.fs
@@ -1,4 +1,4 @@
-module ARCtrl.ISADotnet.Tests
+module ARCtrl.Core.Tests
open Fable.Pyxpecto
@@ -24,5 +24,7 @@ let all = testSequenced <| testList "Core" [
Fable.Tests.main
]
+#if !TESTS_ALL
[]
+#endif
let main argv = Pyxpecto.runTests [||] all
\ No newline at end of file
diff --git a/tests/FileSystem/Main.fs b/tests/FileSystem/Main.fs
index 62ae33f3..a1a94ce8 100644
--- a/tests/FileSystem/Main.fs
+++ b/tests/FileSystem/Main.fs
@@ -1,4 +1,4 @@
-module ARCtrl.FileSystem.Tests
+module ARCtrl.FileSystem.Tests
open Fable.Pyxpecto
@@ -6,5 +6,7 @@ let all = testSequenced <| testList "FileSystem" [
ARCtrl.FileSystemTree.Tests.main
]
+#if !TESTS_ALL
[]
+#endif
let main argv = Pyxpecto.runTests [||] all
diff --git a/tests/Json/Main.fs b/tests/Json/Main.fs
index df23d9be..f41e6665 100644
--- a/tests/Json/Main.fs
+++ b/tests/Json/Main.fs
@@ -24,5 +24,7 @@ let all = testSequenced <| testList "Json" [
Tests.SchemaValidation.main
]
+#if !TESTS_ALL
[]
+#endif
let main argv = Pyxpecto.runTests [||] all
\ No newline at end of file
diff --git a/tests/ROCrate/Main.fs b/tests/ROCrate/Main.fs
index ef0393c2..910e1aca 100644
--- a/tests/ROCrate/Main.fs
+++ b/tests/ROCrate/Main.fs
@@ -1,4 +1,4 @@
-module ROCrate.Tests
+module ARCtrl.ROCrate.Tests
open Fable.Pyxpecto
@@ -17,5 +17,7 @@ let all = testSequenced <| testList "ROCrate" [
Tests.ScholarlyArticle.main
]
+#if !TESTS_ALL
[]
+#endif
let main argv = Pyxpecto.runTests [||] all
diff --git a/tests/Spreadsheet/Main.fs b/tests/Spreadsheet/Main.fs
index 076a55d5..58e99be7 100644
--- a/tests/Spreadsheet/Main.fs
+++ b/tests/Spreadsheet/Main.fs
@@ -1,4 +1,4 @@
-module Spreadsheet.Tests
+module ARCtrl.Spreadsheet.Tests
open Fable.Pyxpecto
@@ -17,5 +17,7 @@ let all = testSequenced <| testList "ISA.Spreadsheet" [
TemplateTests.main
]
+#if !TESTS_ALL
[]
+#endif
let main argv = Pyxpecto.runTests [||] all
diff --git a/tests/ValidationPackages/Main.fs b/tests/ValidationPackages/Main.fs
index a8f9c552..5c7af4db 100644
--- a/tests/ValidationPackages/Main.fs
+++ b/tests/ValidationPackages/Main.fs
@@ -1,4 +1,4 @@
-module ARCtrl.FileSystem.Tests
+module ARCtrl.ValidationPackages.Tests
open Fable.Pyxpecto
@@ -7,5 +7,7 @@ let all = testSequenced <| testList "ValidationPackages" [
Tests.ValidationPackagesConfig.main
]
+#if !TESTS_ALL
[]
+#endif
let main argv = Pyxpecto.runTests [||] all
diff --git a/tests/Yaml/Main.fs b/tests/Yaml/Main.fs
index 1c43fc1f..9527fc1f 100644
--- a/tests/Yaml/Main.fs
+++ b/tests/Yaml/Main.fs
@@ -7,5 +7,7 @@ let all = testSequenced <| testList "Yaml" [
Tests.ValidationPackagesConfig.main
]
+#if !TESTS_ALL
[]
+#endif
let main argv = Pyxpecto.runTests [||] all