> For the complete documentation index, see [llms.txt](https://docs.solutioo.de/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.solutioo.de/datanorm-item-import/datanorm_en_us/operations-and-troubleshooting/built-in-tests.md).

# Built-in Tests

## Why these tests exist

Whether a DATANORM import works correctly depends on many details: unit mapping, posting groups, number series, price sources. The built-in tests exercise that chain on their own, without needing real supplier files.

Good occasions to run them:

* after configuration, as a sign-off
* after an app update
* when an import produces unexpected results and you want to narrow down the cause

You start the tests from **DATANORM Setup**.

## Feature tests

The **Run Feature Tests** action checks the core functions in sequence:

<table><thead><tr><th width="230">Area</th><th>What is checked</th></tr></thead><tbody><tr><td><strong>Licence</strong></td><td>Is the licence valid?</td></tr><tr><td><strong>Setup</strong></td><td>Are the required values in place?</td></tr><tr><td><strong>SFTP</strong></td><td>Is the SFTP configuration coherent?</td></tr><tr><td><strong>Import</strong></td><td>Is a test file read correctly?</td></tr><tr><td><strong>Synchronisation</strong></td><td>Does it produce items?</td></tr><tr><td><strong>Export</strong></td><td>Can a DATANORM file be generated?</td></tr></tbody></table>

## Record type test cases

The **Run Record Type Test Cases** action verifies record type processing against the DATANORM specification. Each case imports a small sample file embedded in the code and compares the result with the expected value.

<table><thead><tr><th width="230">Test case</th><th>Verifies</th></tr></thead><tbody><tr><td><strong>REG-V4-ARTICLE</strong></td><td>The A and B record of a V4 article are merged into one record.</td></tr><tr><td><strong>REG-V4-PRICE</strong></td><td>All article blocks of a V4 price line are read.</td></tr><tr><td><strong>REG-V4-DISCOUNT</strong></td><td>Discount groups from the R record are taken correctly.</td></tr><tr><td><strong>REG-V5-ARTICLE</strong></td><td>A V5 article is read in full from the A record.</td></tr><tr><td><strong>REG-DUPLICATE</strong></td><td>The same article number appearing repeatedly in a file creates no duplicate entry.</td></tr><tr><td><strong>REG-PURCH-PRICE</strong></td><td>An imported price produces a purchase price line.</td></tr><tr><td><strong>REG-VENDOR</strong></td><td>Vendor assignment applies to the session and its staging data.</td></tr><tr><td><strong>REG-SET-V5</strong></td><td>A V5 set becomes an assembly BOM.</td></tr><tr><td><strong>REG-SET-V4</strong></td><td>A V4 set becomes an assembly BOM.</td></tr><tr><td><strong>REG-SET-OPTIONAL</strong></td><td>Optional lines are included or left out according to the setting.</td></tr><tr><td><strong>REG-SET-NESTED</strong></td><td>A nested set is resolved across multiple levels.</td></tr></tbody></table>

## Reading the results

**Show Test Results** opens the list of test runs. Each row names the test case, the outcome and, on failure, the detail message with the expected and the actual value.

<table><thead><tr><th width="200">Outcome</th><th>Meaning</th></tr></thead><tbody><tr><td><strong>Passed</strong></td><td>The case behaves as expected.</td></tr><tr><td><strong>Failed</strong></td><td>The result deviates. The detail message names the deviation.</td></tr><tr><td><strong>Skipped</strong></td><td>The case could not run, for example because a prerequisite is missing.</td></tr></tbody></table>

## Notes on running them

{% hint style="warning" %}
The tests create test data and process it. Run them in a **sandbox environment**, not in a production tenant.
{% endhint %}

{% hint style="info" %}
A failing test usually points at the **setup**, not at a defect. If a posting group is missing, for instance, the synchronisation check fails. Fix the cause and start the run again.
{% endhint %}

If a test still fails after you have corrected the setup, send the detail message to support, see [Support Contacts](/datanorm-item-import/datanorm_en_us/operations-and-troubleshooting/support.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.solutioo.de/datanorm-item-import/datanorm_en_us/operations-and-troubleshooting/built-in-tests.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
