fsprojects / TickSpec

Lean .NET BDD framework with powerful F# integration
Apache License 2.0
133 stars 23 forks source link

Replace placeholders in table from examples? #46

Closed deyanp closed 3 years ago

deyanp commented 3 years ago

Any way to replace automatically placeholders inside a table from the examples?

E.g.

Feature: Xxxx

  Scenario Outline: YYY
    Given xxx
    When yyy <Placeholder1>
    | Key | Value |
    | SomeKey | <Placeholder2> |
    Then  zzzz

  Examples:
   | Placeholder1 | Placeholder2 |
   | Value1 | Value2 |
   | Value3 | Value4 |

Ideally I would also not need to put Placeholder1 in the step definition for the scenario outline to instantiate 2 scenarios ...

I am currently doing it like this as a workaround:

module Scenario =
    let scenarios = Dictionary<string,Scenario> ()

    let setCurrent scenario =
        scenarios.[Thread.CurrentThread.ManagedThreadId.ToString()] <- scenario
    let getCurrent () =
        let found, foundScenario = scenarios.TryGetValue(Thread.CurrentThread.ManagedThreadId.ToString())
        if found then Some foundScenario else None
    let getCurrentParameters () =
        getCurrent ()
        |> Option.map (fun foundScenario ->
            foundScenario.Parameters
            |> Map.ofArray )
        |> Option.defaultValue Map.empty

...

    [<Theory; MemberData("scenarios", "Xxxx.feature")>]
    member this.Xxxxx (scenario : Scenario) = 
        Scenario.setCurrent scenario
        scenario.Action.Invoke()

... 
let [<When>] ``yyy (.*)``
    (placeholder1: string)
    (properties: Table)
    (ctx:Context)
    =
   let parameters = Scenario.getCurrentParameters() 
  // here manually replace the values in properties Table ...

Any better/more elegant and automated ways?

mchaloupka commented 3 years ago

Hello,

do I understand the reported defect correctly that the table parameter does not support the placeholders from examples?

deyanp commented 3 years ago

Hi,

I did not mean this as a defect, simply as sth not supported currently.

Yes, it is about lack of support for placeholders (the value of which is coming from Examples:) inside tables, which if I am not mistaken is supported in other bdd tools.

I have this cumbersome workaround in place, but maybe there is a better way ...

Br, Deyan

mchaloupka commented 3 years ago

Hello,

there is of course a better way! The problem is in this method: https://github.com/fsprojects/TickSpec/blob/master/TickSpec/FeatureParser.fs#L84

You can see that the code replace combination s is used only for the step definitions but not on the bullets/table/doc below.

That feels like a minor change, but it would be good to have it covered by tests. Are you interested in contributing and making a PR for it? If not, I can do it, but I cannot promise how quickly I will get to it.

Regards, Milos

deyanp commented 3 years ago

Hi,

Hmm, thanks for the hint, that sounds doable even for me ;) ... let me try to find time (but I cannot promise when either) ..

Br, Deyan

deyanp commented 3 years ago

Hmm getting some errors when trying to build ... I am on Ubuntu 20.10 with .NET 5 ... I see some strange things in netfx.props which I have never seen so far ... Maybe you have another hint about this as well?

Both Rider, VS Code and simple dotnet build behave the same way ...

Build FAILED.

/usr/share/dotnet/sdk/5.0.300/Microsoft.Common.CurrentVersion.targets(2202,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "System". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/usr/share/dotnet/sdk/5.0.300/Microsoft.Common.CurrentVersion.targets(2202,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "System.Data". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/usr/share/dotnet/sdk/5.0.300/Microsoft.Common.CurrentVersion.targets(2202,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "System.Drawing". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/usr/share/dotnet/sdk/5.0.300/Microsoft.Common.CurrentVersion.targets(2202,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "System.Xml". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/usr/share/dotnet/sdk/5.0.300/Microsoft.Common.CurrentVersion.targets(2202,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "System.Core". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/usr/share/dotnet/sdk/5.0.300/Microsoft.Common.CurrentVersion.targets(2202,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "System.Runtime.Serialization". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/usr/share/dotnet/sdk/5.0.300/Microsoft.Common.CurrentVersion.targets(2202,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "System.Xml.Linq". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/usr/share/dotnet/sdk/5.0.300/Microsoft.Common.CurrentVersion.targets(2202,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "System.Numerics". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/usr/share/dotnet/sdk/5.0.300/Microsoft.Common.CurrentVersion.targets(2202,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "System.IO.Compression.FileSystem". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/usr/share/dotnet/sdk/5.0.300/Microsoft.Common.CurrentVersion.targets(2202,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "mscorlib". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/Extensions.fs(5,28): warning FS0025: Incomplete pattern matches on this expression. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
FSC : error FS1108: The type 'BigInteger' is required here and is unavailable. You must add a reference to assembly 'System.Runtime.Numerics, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/obj/Debug/net452/.NETFramework,Version=v4.5.2.AssemblyAttributes.fs(2,34): error FS0039: The type 'Versioning' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/unknown(1,1): error FS1108: The type 'ValueType' is required here and is unavailable. You must add a reference to assembly 'System.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/obj/Debug/net452/TickSpec.AssemblyInfo.fs(6,12): error FS1109: A reference to the type 'System.ValueType' in assembly 'mscorlib' was found, but the type could not be found in that assembly [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/obj/Debug/net452/TickSpec.AssemblyInfo.fs(10,31): error FS0039: The type 'AssemblyCompanyAttribute' is not defined in 'System.Reflection'. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/obj/Debug/net452/TickSpec.AssemblyInfo.fs(11,31): error FS0039: The type 'AssemblyConfigurationAttribute' is not defined in 'System.Reflection'. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/obj/Debug/net452/TickSpec.AssemblyInfo.fs(12,31): error FS0039: The type 'AssemblyCopyrightAttribute' is not defined in 'System.Reflection'. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/obj/Debug/net452/TickSpec.AssemblyInfo.fs(13,31): error FS0039: The type 'AssemblyDescriptionAttribute' is not defined in 'System.Reflection'. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/obj/Debug/net452/TickSpec.AssemblyInfo.fs(14,31): error FS0039: The type 'AssemblyFileVersionAttribute' is not defined in 'System.Reflection'. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/obj/Debug/net452/TickSpec.AssemblyInfo.fs(15,31): error FS0039: The type 'AssemblyInformationalVersionAttribute' is not defined in 'System.Reflection'. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/obj/Debug/net452/TickSpec.AssemblyInfo.fs(16,31): error FS0039: The type 'AssemblyProductAttribute' is not defined in 'System.Reflection'. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/obj/Debug/net452/TickSpec.AssemblyInfo.fs(17,31): error FS0039: The type 'AssemblyTitleAttribute' is not defined in 'System.Reflection'. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/obj/Debug/net452/TickSpec.AssemblyInfo.fs(18,31): error FS0039: The type 'AssemblyVersionAttribute' is not defined in 'System.Reflection'. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/obj/Debug/net452/TickSpec.AssemblyInfo.fs(19,31): error FS0039: The type 'AssemblyMetadataAttribute' is not defined in 'System.Reflection'. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/AssemblyInfo.fs(5,13): error FS0039: The type 'InternalsVisibleTo' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/Extensions.fs(7,10): error FS0039: The pattern discriminator '::' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/unknown(1,1): error FS1108: The type 'IEnumerable`1' is required here and is unavailable. You must add a reference to assembly 'System.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/Extensions.fs(14,28): error FS0039: The type 'bool' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/Extensions.fs(14,42): error FS0039: The type 'seq' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/Extensions.fs(15,9): error FS0039: The value or constructor 'seq' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/unknown(1,1): error FS1108: The type 'Boolean' is required here and is unavailable. You must add a reference to assembly 'System.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/unknown(1,1): error FS1108: The type 'Int32' is required here and is unavailable. You must add a reference to assembly 'System.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/Extensions.fs(37,34): error FS0039: The type 'IO' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/Extensions.fs(38,9): error FS0039: The value or constructor 'seq' is not defined. Maybe you want one of the following:   Seq [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/Extensions.fs(46,58): error FS0039: The value, constructor, namespace or type 'toArray' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/Extensions.fs(49,38): error FS0039: The type 'seq' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
FSC : error FS1109: A reference to the type 'System.ValueType' in assembly 'mscorlib' was found, but the type could not be found in that assembly [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/Extensions.fs(51,22): error FS0039: The value, constructor, namespace or type 'iter' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ServiceProvider.fs(3,12): error FS1109: A reference to the type 'System.ValueType' in assembly 'mscorlib' was found, but the type could not be found in that assembly [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ServiceProvider.fs(4,13): error FS0039: The namespace 'Diagnostics' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ServiceProvider.fs(8,3): error FS0039: The type 'Sealed' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ServiceProvider.fs(39,15): error FS0039: The type 'IDisposable' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ServiceProvider.fs(50,13): error FS0039: The type 'IServiceProvider' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ServiceProvider.fs(67,15): error FS0039: The type 'IServiceProvider' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ServiceProvider.fs(73,15): error FS0039: The type 'IInstanceProvider' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ServiceProvider.fs(77,15): error FS0039: The type 'IDisposable' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ServiceProvider.fs(84,3): error FS0039: The type 'Sealed' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ServiceProvider.fs(145,15): error FS0039: The type 'IInstanceProvider' is not defined. Maybe you want one of the following:   InstanceProvider [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ServiceProvider.fs(149,15): error FS0039: The type 'IServiceProvider' is not defined. Maybe you want one of the following:   InstanceProvider [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ServiceProvider.fs(154,15): error FS0039: The type 'IDisposable' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
FSC : error FS1109: A reference to the type 'System.ValueType' in assembly 'mscorlib' was found, but the type could not be found in that assembly [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(3,12): error FS1109: A reference to the type 'System.ValueType' in assembly 'mscorlib' was found, but the type could not be found in that assembly [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(4,13): error FS0039: The namespace 'Collections' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(6,16): error FS0039: The namespace 'FSharp' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(9,14): error FS0039: The type 'string' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(10,8): error FS0039: The value, namespace, type or module 'String' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(15,49): error FS0039: The type 'MethodInfo' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(20,44): error FS0039: The type 'MethodInfo' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(23,24): error FS0039: The value or constructor 'typeof' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(33,25): error FS0039: The type 'MethodInfo' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(47,18): error FS0039: The type 'IDictionary' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(49,12): error FS0039: The type 'Type' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(49,22): error FS0039: The type 'string' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(56,18): error FS0039: The type 'IDictionary' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(57,21): error FS0039: The type 'Type' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(47,18): error FS0039: The type 'IDictionary' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(49,12): error FS0039: The type 'Type' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(49,22): error FS0039: The type 'string' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(50,20): error FS0039: The value, namespace, type or module 'Array' is not defined. Maybe you want one of the following:   toArray [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(50,5): error FS0074: The type referenced through 'System.Array' is defined in an assembly that is not referenced. You must add a reference to assembly 'The system type 'System.Array' was required but no referenced system DLL contained this type'. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(46,1): error FS0074: The type referenced through 'System.Array' is defined in an assembly that is not referenced. You must add a reference to assembly 'The system type 'System.Array' was required but no referenced system DLL contained this type'. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(84,38): error FS0039: The type 'Type' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(86,14): error FS0039: The value, namespace, type or module 'Array' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(89,12): error FS0039: The value, namespace, type or module 'Seq' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(117,18): error FS0039: The type 'IDictionary' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(119,15): error FS0039: The type 'MethodInfo' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(119,31): error FS0039: The type 'string' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(120,27): error FS0039: The type 'option' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(120,46): error FS0039: The type 'option' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(120,64): error FS0039: The type 'option' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioRun.fs(162,72): error FS0039: The type 'Ref' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(4,12): error FS1109: A reference to the type 'System.ValueType' in assembly 'mscorlib' was found, but the type could not be found in that assembly [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(5,13): error FS0039: The namespace 'Collections' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(7,24): error FS0039: The namespace 'Emit' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(8,16): error FS0039: The namespace 'FSharp' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(12,18): error FS0039: The type 'ModuleBuilder' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(20,26): error FS0039: The type 'TypeBuilder' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(28,26): error FS0039: The type 'TypeBuilder' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(29,24): error FS0039: The type 'FieldBuilder' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(30,22): error FS0039: The type 'string' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(30,31): error FS0039: The type 'string' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(49,19): error FS0039: The value, namespace, type or module 'Seq' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(27,1): error FS0074: The type referenced through 'System.Array' is defined in an assembly that is not referenced. You must add a reference to assembly 'The system type 'System.Array' was required but no referenced system DLL contained this type'. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(64,14): error FS0039: The type 'ILGenerator' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(75,21): error FS0039: The value, namespace, type or module 'Seq' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(87,19): error FS0039: The value, namespace, type or module 'Seq' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(107,9): error FS0039: The value or constructor 'typeof' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(112,23): error FS0039: The type 'ILGenerator' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(112,51): error FS0039: The type 'FieldBuilder' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(112,68): error FS0039: The type 'Type' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(117,9): error FS0039: The value or constructor 'typeof' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(121,9): error FS0039: The value or constructor 'typeof' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(127,19): error FS0039: The type 'ILGenerator' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(127,35): error FS0039: The type 'Type' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(130,9): error FS0039: The value or constructor 'typeof' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(135,22): error FS0039: The type 'ILGenerator' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(135,38): error FS0039: The type 'Type' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(135,47): error FS0039: The type 'string' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(140,9): error FS0039: The value or constructor 'typeof' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
/home/deyan/git/TickSpec/TickSpec/ScenarioGen.fs(144,9): error FS0039: The value or constructor 'typeof' is not defined. [/home/deyan/git/TickSpec/TickSpec/TickSpec.fsproj]
    11 Warning(s)
    100 Error(s)
deyanp commented 3 years ago

Ignore the above, it seems that If I comment out

<Import Project="../netfx.props" />

I can build TickSpec and TickSpec.Tests individually, which should be enough ..

deyanp commented 3 years ago

@mchaloupka I have created PR #47

mchaloupka commented 3 years ago

Ignore the above, it seems that If I comment out

<Import Project="../netfx.props" />

I can build TickSpec and TickSpec.Tests individually, which should be enough ..

Do you have mono installed? The netfx.props was needed to make it building for full .NET Framework on linux. It starts being questionable whether TickSpec should not be migrated to .NET 5 fully. However, before that we should consider whether we can recreate the "emit" functionality.

deyanp commented 3 years ago

I have no Mono installed (and not at all dying installing it - why would I need it in 2021?).

Not sure what this "emit" functionality is, but yes, migration to .NET 5 is what I suggested on gitter ..

mchaloupka commented 3 years ago

There is a new release with the merged changes: https://github.com/fsprojects/TickSpec/releases/tag/2.0.1