Giter Club home page Giter Club logo

seddryck / nbi Goto Github PK

View Code? Open in Web Editor NEW
106.0 17.0 37.0 16.2 MB

NBi is a testing framework (add-on to NUnit) for Business Intelligence and Data Access. The main goal of this framework is to let users create tests with a declarative approach based on an Xml syntax. By the means of NBi, you don't need to develop C# or Java code to specify your tests! Either, you don't need Visual Studio or Eclipse to compile your test suite. Just create an Xml file and let the framework interpret it and play your tests. The framework is designed as an add-on of NUnit but with the possibility to port it easily to other testing frameworks.

Home Page: http://www.nbi.io

License: Apache License 2.0

C# 99.17% Batchfile 0.01% PowerShell 0.17% HTML 0.65% MDX 0.01%
nunit database cube etl business-intelligence test-automation test-framework data-quality data-quality-checks

nbi's Introduction

Logo

NBi

NBi is a testing framework (add-on to NUnit) for Business Intelligence. It supports most of the relational databases (SQL server, MySQL, postgreSQL ...) and OLAP platforms (Analysis Services, Mondrian ...) but also ETL and reporting components (Microsoft technologies).

The main goal of this framework is to let users create tests with a declarative approach based on an Xml syntax. By the means of NBi, you don't need to develop C# code to specify your tests! Either, you don't need Visual Studio to compile your test suite. Just create an Xml file and let the framework interpret it and play your tests. The framework is designed as an add-on of NUnit but with the possibility to port it easily to other testing frameworks.

Social media: website twitter badge

Releases: nuget GitHub Release Date licence badge FOSSA Status

Latest RC and beta: Pre-release GitHub (Pre-)Release Date nuget

Dev. activity: GitHub last commit Still maintained GitHub commits since latest version GitHub commits on v2.0 GitHub commit activity

Continuous integration builds: Build status Tests CodeFactor

Status: stars badge Bugs badge Features badge Top language

Releases

Binaries for the different releases are hosted on www.nbi.io or GitHub

Documentation

The documentation is available on-line and is hosted on www.nbi.io

Licenses

NBi is available on the terms of Apache 2.0. NBi is also using several OSS projects as libraries.

Compatibility of licenses in checked by FOSSA app:

FOSSA Status

Bugs, issues and requests for features

The list of bugs and feature's requests is hosted on GitHub

Continuous Integration and Testing

A continuous integration service is available on AppVeyor and another on Azure DevOps

NBi has around 2750 automated tests, asserting most of the features supported by NBi during the build processes. These tests are organized in three folders:

  • Acceptance: The tests are effectively written in nbits file and played end-to-end by the framework itself. They don't use any fake, mock or stub and are connected to real databases and cubes and perform queries on them.
  • Integration: These tests are used to assert interactions with external resources such as databases or cubes. They make usage of stubs to define parameters impacting the code to use.
  • Unit: These tests are never contacting an external resource and have a maximal scope equivalent to the code of a single class. Usage of stubs, fakes and mocks is welcome.

In order to be able to build the software on different machines, the database and cube used during tests must always be Adventure Works 2008R2. In order to facilitate the integration, NBi is connected by default to the online SQL database hosted on Azure (Unfortunately no equivalent for SSAS). If you want to override the connection settings to execut the tests on your own environment, create a file named ConnectionString.user.config in the folder NBi.Testing and copy the content from the file ConnectionString.config into it, before adjusting for your environment.

Note that all the tests are not executed on the continuous integration services, due to limitations in the availability of some components.

  • Unit tests are always executed
  • Integration tests are executed based on the availability of the underlying components:
    • Database Engine: Yes. Due to the usage of an Azure database to run these tests, these tests are enabled on the CI platforms. About ODBC drivers, the ODBC driver for SQL Server (13.1) is used on appVeyor and the SQL Server (10.0) is used on Azure DevOps
    • OLAP Engine: No
    • ETL Engine (SSIS): No
    • Windows Service: No (but planned to integrate them)
    • Local Database: No (but planned to integrate them)
    • Report Server: No (but planned to integrate them)
  • Acceptance tests are partially run. The test-suites covering the acceptance tests are executed but will return an ignore result when at least one of the test is not runnable due to service not running (most of the time, the reason for an ignore is the unavailability of Analysis Services).

Three artefacts are packaged and published by this CI:

  • Framework.zip contains the dll needed to run tests written with NBi
  • UI.zip contains the exe and dlls needed to run Genbi
  • Nuget packages

The nuget packages built on appVeyor are pushed to nuget for beta, release candidates and release branches.

Code and contributions

NBi is using Git as DCVS and the code is hosted on Github. Organization of the Git repository is based on Git-flow.

If you want to develop a new feature, you're encouraged to read the contribution guidelines.

NBi is mostly developed in C# with a bit of SQL and XML.

Tracking

This OSS project is tracked by Ohloh

Project Stats

nbi's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nbi's Issues

Hashes collision with huge result-sets

Jenni_P:

Hi,

I'm using NUnit / NBI in my project.
But i have a important volumetry issue.

I compare two queries, aroung 800 000 rows.

But i have this message :
NBi.NUnit.Runtime.TestSuite.Compare CodeActe,count(*) on CubeDimActe+CubeDimActe2 :
NBi.NUnit.Runtime.CustomStackTraceErrorException : The expected data set has some duplicated keys. Check your keys definition or the result set defined in your assertion.

Using the query in my database, i have already checked the result. It's seem ok. No duplicated keys.

Does a row number limitation exist ? How i can solve my issue and continue using this software ?

Thank you,
J.

timeOut-MilliSeconds in fasterThen is not working

Daanoj

Hi Seddrick,

When I add the option timeOut_MilliSeconds="value" in a test script, NUnit doesn't load the testsuit and gives an error. The error is: The test suite is not valid. Check with the XSD.

Examples:

This works:

<fasterThan max-time-milliSeconds="2000"/> 

This doesn't work:

<fasterThan timeout-milliseconds="1000"/> 
or 
<fasterThan max-time-milliSeconds="2000" timeout-milliseconds="1000"/> 

Greetings Daan

Fake/stub for Stored Procedures and Functions

It will be useful to be able to fake and/or stub stored procedures or functions to test some parts of your BI solution.

Stub: temporary replace SP/function by a fix result set
Fake: temporary replace SP/function by another T-SQL code.

Compare a report to an atom feed

It's really powerful to be able to test against the dataset, but sometimes there are business logic in the report elements. So maybe it could be possible to test against the atom-feed of the report? I am pretty sure its no trivial task, but it could be a cool feature.

Compare a report to an atom feed

If you are using a 12-hours format, GenBI generates an invalid XML and all tests fails.
I'm now using EN-US 12-Hours time format and this is what is generated by GenBI:

which is not a valid datetime.

The correct value is

GenBI should always generate datetime formats following the ISO 8601

YYYYMMDDTHHmmSS

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.