Need help with fake-xrm-easy?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

jordimontana82
218 Stars 152 Forks Other 1.1K Commits 96 Opened issues

Description

The testing framework for Dynamics CRM and Dynamics 365 which runs on an In-Memory context and deals with mocks or fakes for you

Services available

!
?

Need anything else?

Contributors list

Fake Xrm Easy: TDD for Dynamics CRM and Dynamics 365 (or now Common Data Service for Apps) made simple

|Build|Line Coverage|Branch Coverage| |-----------|-----|-----------------| |Build status|Line coverage|Branch coverage|

Streamline unit testing in Dynamics CRM by faking the

IOrganizationService
to work with an in-memory context.

Drive your development by unit testing any plugin, code activity, or 3rd party app using the

OrganizationService
easier and faster than ever before.

Note: To keep up to date with client-side unit testing version of this framework, please have a look at this repo and samples in this other sample code repo

|Version|Package Name|NuGet| |-----------|------|-----| |Dynamics v9 (>= 9.x)|FakeXrmEasy.9|Nuget| |Dynamics 365 (8.2.x)|FakeXrmEasy.365|Nuget| |Dynamics CRM 2016 ( >= 8.0 && <= 8.1)|FakeXrmEasy.2016|Nuget| |Dynamics CRM 2015 (7.x)|FakeXrmEasy.2015|Nuget| |Dynamics CRM 2013 (6.x)|FakeXrmEasy.2013|Nuget| |Dynamics CRM 2011 (5.x)|FakeXrmEasy|Nuget|

Supports Dynamics CRM 2011, 2013, 2015, 2016, and Dynamics 365 (8.x and 9.x). NOTE: With the release of Dynamics 365 v9 we are changing the naming convention for new packages to match the major version.

Semantic Versioning

The NuGet packages use semantic versioning like this:

x.y.z  => Major.Minor.Patch

x: stands for the major version. The package is very stable so that's why the major version didn't change yet.

y: minor version. Any minor updates add new functionality without breaking changes. An example of these would be a new operator or a new fake message executor.

z: patch. Any update to this number means new bug fixes for the existing functionality. A new minor version might also include bug fixes too.

Support

We believe in sustainable Open Source. The software is MIT licensed and provided to you for free but we encourage you (and by you, we mean the whole community) to extend it / improve it by yourselves, of course, with help from us.

In programming terms:

Free Open Source !== Free Support. 

If you're a business entity who delivers solutions on top of the Power Platform and are using this project already, you can help make OSS sustainable while getting more visibility by becoming a sponsor. Please reach out to me for sponsorship enquiries and to contribute and give back to this project.

If you're an individual, feel free to check the Sponsorship tiers, any help is welcome and greatly appreciated.

For contributing, please see section below.

Contributing

Please consider the below guidelines for contributing to the project:

  • Priority: Given the overwhelming number of issues and pull requests, we'll review Pull Requests first, then any outstanding issues. We encourage you to resolve / extend issues by yourselves, as a community, and we'll prioritise those first because we know (as mantainers) the effort it takes.

    Please do fork the project and submit a pull request

    We'll thank you forever and ever.

    If you don't know how to resolve something or are not familiar with pull requests, don't worry, raise the issue anyway. Those will be revised next.

  • When raising an issue:

    • Please provide a sample unit test to reproduce any issues detected where possible. This will speed up the resolution.
    • Attach all generated early bound typed entities required (if you're using early bound).
  • If you're using the framework, please do Star the project, it'll give more visibility to the wider community to keep extending and improving it.

Roadmap

  • TODO: We're working on a v2.x of this package which targets .net core. That new version has been developed for the last couple of months, and we're VERY close to make it public. In the meantime, PRs and issues will be on hold for the time being to keep track of "where we are" in order to be merged into both versions 1.x and 2.x. More info here

  • TODO: Add support for date operators. See

    ConditionOperator
    implementation status here. Feel free to add missing ones!
  • TODO: Implement remaining CRM messages. To know which ones have been implemented so far, see

    FakeMessageExecutor
    implementation status here.
  • TODO: Increase test coverage.

  • NEW! I'm planning a 2.x version, this version will contain all the major improvements I always thought of adding but that will introduce considerable breaking changes. If you want to join a private preview list, let me know.

Tests disappeared?

Try deleting anything under the VS test explorer cache:

%Temp%\VisualStudioTestExplorerExtensions

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.