GithubHelp home page GithubHelp logo

wildernesslabs / meadow.testsuite Goto Github PK

View Code? Open in Web Editor NEW
1.0 7.0 0.0 1.1 MB

Meadow.TestSuite is intended to provide a remote-controllable test infrastructure for the Wilderness Labs Meadow. It provides a mechanism to push test assemblies to a device, enumerate assemblies and test methods, selectively run test methods, and retrieve test results.

Home Page: https://www.wildernesslabs.co/

C# 99.70% Dockerfile 0.27% HTML 0.03%
meadow iot testing

meadow.testsuite's Introduction

Meadow.TestSuite is intended to provide a remote-controllable test infrastructure for the Wilderness Labs Meadow. It provides a mechanism to push test assemblies to a device, enumerate assemblies and test methods, selectively run test methods, and retrieve test results.

A goal is to provide a API that at least feels like xUnit, or a subset of xUnit, to facilitate easier test creation. Direct use of xUnit, at least right now, is not a goal since the tests must be run on-device and control has to be handled by a meadow-specific transport layer.

Using a Raspberry Pi as the Test Director

Running the TestDirector from a Container

Hardware Setup

Using TestSuite

Authoring TestSuite Tests

TestSuite Worker REST API

TestSuite Worker Configuration

TestSuite Implementation Details

Beta Notes

Currently the Beta source has references to local projects for the full source of Meadow Core and Meadow Foundation since we're using it to find and fix bugs in both and it makes things a bit easier internally. If you don't have the source for those, however, it leads to compile errors like this:

Error	NU1104	Unable to find project '...\Meadow.Foundation\Source\Meadow.Foundation.Core\Meadow.Foundation.Core.csproj'. Check that the project reference is valid and that the project file exists.	Tests.Meadow.Foundation	{My Repo Folder}\Source\Repos\Meadow.TestSuite\Tests.Meadow.Foundation\Tests.Meadow.Foundation.csproj

This is solved by changing from the local project reference to using the Nuget packages instead.

Update Meadow.TestSuite.Worker.csproj

Old:

<Project Sdk="Meadow.Sdk/1.1.0">
  ...
  <ItemGroup>
    <ProjectReference Include="..\..\Meadow.Core\source\Meadow.Core\Meadow.Core.csproj" />
    <ProjectReference Include="..\..\Meadow.Foundation\Source\Meadow.Foundation.Core\Meadow.Foundation.Core.csproj" />
    <ProjectReference Include="..\Meadow.TestSuite.Core\Meadow.TestSuite.Core.csproj" />
  </ItemGroup>
</Project>

New:

<Project Sdk="Meadow.Sdk/1.1.0">
  ...
  <ItemGroup>
    <PackageReference Include="Meadow" Version="0.18.0" />
    <PackageReference Include="Meadow.Foundation" Version="0.20.0" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\Meadow.TestSuite.Core\Meadow.TestSuite.Core.csproj" />
  </ItemGroup>
</Project>

Update Tests.Meadow.Core.csproj and Tests.Meadow.Foundation.csproj

Old (similar to):

<Project Sdk="Meadow.Sdk/1.1.0">
  ...
  <ItemGroup>
    <PackageReference Include="Meadow.Foundation" Version="0.*" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\..\Meadow.Core\source\Meadow.Core\Meadow.Core.csproj" />
    <ProjectReference Include="..\Meadow.TestSuite.Core\Meadow.TestSuite.Core.csproj" />
  </ItemGroup>
</Project>

New:

<Project Sdk="Meadow.Sdk/1.1.0">
  ...
  <ItemGroup>
    <PackageReference Include="Meadow" Version="0.18.0" />
    <PackageReference Include="Meadow.Foundation" Version="0.*.0" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\Meadow.TestSuite.Core\Meadow.TestSuite.Core.csproj" />
  </ItemGroup>
</Project>

meadow.testsuite's People

Contributors

ctacke avatar jorgedevs avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

meadow.testsuite's Issues

[Wifi] Failure of a particular test sequence

Investigate why this test fails:

var tests = new ITest<F7TestDevice>[]
    {
        new WiFiConnectionPositiveTest<F7TestDevice>(),
        new WiFiWebRequestPositiveTest<F7TestDevice>(),
        new WiFiScanPositiveTest<F7TestDevice>()
    };

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.