---
id: video/9CW5mydS9Vs
type: video
title: "Microsoft presents: Tests, dependencies, runners and evals for BC applications"
summary: "Microsoft session on testing Business Central apps: propagated dependencies, test explorer support in AL, new test codeunit properties, internal visible to, AI test agents, and data-driven AI tests and evals. Also covers CI/CD test selection, MCP-based test execution and token consumption. Native data-driven tests are not yet in the product."
tier: community
language: en
tags:
  - deterministic testing
  - propagated dependencies
  - application test library
  - internal visible to
  - test explorer
  - al test runner
  - test permissions
  - test isolation
  - test type
  - ai test agent
  - ci/cd pipelines
  - ai tests
system: development
review:
  state: reviewed
  by: opus
  at: "2026-10-07T23:17:30.871Z"
  flags: []
generated:
  at: "2026-10-09T00:29:02.995Z"
  pipeline: 0.2.0
  prompts:
    extract-video: 1
    summarize-video: 2
  input_hash: 542474b9d1842cec07cabae1f8efe333cdc5ada653047a2cc287c86760c96682
evidence:
  - kind: video
    url: https://www.youtube.com/watch?v=9CW5mydS9Vs&t=1686s
    title: "Custom context interface for data-driven tests: announced"
    date: "2026-10-01T05:38:51.000Z"
    commit: null
    t: 1686
    quote: This is what we have planned um for the pipeline for coming release
  - kind: video
    url: https://www.youtube.com/watch?v=9CW5mydS9Vs&t=16s
    title: "Microsoft presents: Tests, dependencies, runners and evals for BC applications"
    date: "2026-10-01T05:38:51.000Z"
    commit: null
    t: 16
    quote: so the the the question that we want to answer is does it still work and will it work in production right so what
  - kind: video
    url: https://www.youtube.com/watch?v=9CW5mydS9Vs&t=176s
    title: "Microsoft presents: Tests, dependencies, runners and evals for BC applications"
    date: "2026-10-01T05:38:51.000Z"
    commit: null
    t: 176
    quote: One thing to note here about propagated dependencies is that it only works for one level.
  - kind: video
    url: https://www.youtube.com/watch?v=9CW5mydS9Vs&t=328s
    title: "Microsoft presents: Tests, dependencies, runners and evals for BC applications"
    date: "2026-10-01T05:38:51.000Z"
    commit: null
    t: 328
    quote: One thing to note here is that there is a security concern in the sense that anybody can specify to have this app ID
  - kind: video
    url: https://www.youtube.com/watch?v=9CW5mydS9Vs&t=474s
    title: "Microsoft presents: Tests, dependencies, runners and evals for BC applications"
    date: "2026-10-01T05:38:51.000Z"
    commit: null
    t: 474
    quote: As you might have seen from the uh the keynote, we now have support for the test explorer
  - kind: video
    url: https://www.youtube.com/watch?v=9CW5mydS9Vs&t=513s
    title: "Microsoft presents: Tests, dependencies, runners and evals for BC applications"
    date: "2026-10-01T05:38:51.000Z"
    commit: null
    t: 513
    quote: we have added the test type uh property to it as well which signals the scope of the uh the test in this code
links:
  learn: []
  objects: []
  features:
    - feature/573333
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
video_id: 9CW5mydS9Vs
channel: yt-mibuso
source_name: mibuso.com / BC TechDays
url: https://www.youtube.com/watch?v=9CW5mydS9Vs
published_at: "2026-10-01T05:38:51.000Z"
duration_s: 2584
captions: derived
audience:
  - developer
  - functional consultant
  - partner
chapters:
  - t: 0
    title: Testing overview and roadmap
  - t: 126
    title: Deterministic tests and propagated dependencies
  - t: 198
    title: Application test library and real-world usage
  - t: 299
    title: Internal visible to and test facades
  - t: 463
    title: Test explorer support and properties
  - t: 591
    title: Inner loop and outer loop testing
  - t: 693
    title: AI test agent and interactive testing
  - t: 970
    title: Defining AI tests and data-driven approach
  - t: 1213
    title: Artifacts, multiple runs, and copilot feature testing
  - t: 1506
    title: Native data-driven tests and test automation strategies
  - t: 1947
    title: Test selection, coverage, inner loop optimization, and dependencies
  - t: 2264
    title: MCP server, test explorer, token consumption, and model optimization
features:
  - name: Test Explorer support
    status: unclear
    t: 474
    verified: false
    status_source: video
  - name: Propagated dependencies
    status: unclear
    t: 137
    verified: false
    status_source: video
  - name: Test library properties
    status: unclear
    t: 485
    verified: false
    status_source: video
  - name: Internal visible to property
    status: unclear
    t: 299
    verified: false
    status_source: video
  - name: AI test agent
    status: unclear
    t: 743
    verified: false
    status_source: video
  - name: AI test with data-driven permutations
    status: unclear
    t: 1015
    verified: false
    status_source: video
  - name: AI test artifacts and multiple executions
    status: unclear
    t: 1142
    verified: false
    status_source: video
  - name: Copilot feature testing framework
    status: unclear
    t: 1235
    verified: false
    status_source: video
  - name: Agentic test simulation and step verification
    status: unclear
    t: 1411
    verified: false
    status_source: video
  - name: Native data-driven test support
    status: ga
    t: 1506
    verified: false
    status_source: roadmap
    roadmap_ids:
      - "573333"
  - name: Custom context interface for data-driven tests
    status: announced
    t: 1591
    verified: true
    status_source: video
  - name: Agent-assisted test writing and review
    status: unclear
    t: 1713
    verified: false
    status_source: video
  - name: Performance test suite for long-running tests
    status: unclear
    t: 1758
    verified: false
    status_source: video
  - name: Test type filtering with subtype and transaction filters
    status: unclear
    t: 1893
    verified: false
    status_source: video
  - name: Test code lens for developers
    status: unclear
    t: 1931
    verified: false
    status_source: video
  - name: BTE code for faster inner loop testing
    status: unclear
    t: 1964
    verified: false
    status_source: video
  - name: Test isolation improvements with empty company
    status: unclear
    t: 2213
    verified: false
    status_source: video
  - name: MCP server for test execution
    status: unclear
    t: 2299
    verified: false
    status_source: video
  - name: AI test runner with token consumption tracking
    status: unclear
    t: 2378
    verified: false
    status_source: video
  - name: Test optimization through model and instruction tuning
    status: unclear
    t: 2436
    verified: false
    status_source: video
  - name: Running tests from VS Code
    status: unclear
    t: 2508
    verified: false
    status_source: video
  - name: Test generation with MCP and external tools
    status: unclear
    t: 2347
    verified: false
    status_source: video
objects_mentioned:
  - codeunit test library
  - codeunit test good unit
  - other application test library
  - codeunit good unit
  - codeunit search gel account
  - codeunit installation code unit
  - other payables agent
  - other library agent
quotes:
  - t: 16
    text: so the the the question that we want to answer is does it still work and will it work in production right so what
    check: exact
  - t: 176
    text: One thing to note here about propagated dependencies is that it only works for one level.
    check: exact
  - t: 328
    text: One thing to note here is that there is a security concern in the sense that anybody can specify to have this app ID
    check: exact
  - t: 474
    text: As you might have seen from the uh the keynote, we now have support for the test explorer
    check: exact
  - t: 513
    text: we have added the test type uh property to it as well which signals the scope of the uh the test in this code
    check: exact
---

# Microsoft presents: Tests, dependencies, runners and evals for BC applications

> Microsoft session on testing Business Central apps: propagated dependencies, test explorer support in AL, new test codeunit properties, internal visible to, AI test agents, and data-driven AI tests and evals. Also covers CI/CD test selection, MCP-based test execution and token consumption. Native data-driven tests are not yet in the product.

[Watch on YouTube](https://www.youtube.com/watch?v=9CW5mydS9Vs) · mibuso.com / BC TechDays · 2026-10-01 · 43:04 · tier community · reviewed (checked by Opus)

## Overview

The session from BC TechDays covers deterministic testing in AL and then moves to testing AI features. It demos propagated dependencies for refactoring apps without breaking external contracts, the application test library, internal visible to for test facades, and test explorer support that runs and debugs tests in the editor without a custom AL test runner. New test codeunit properties cover required permissions, test type and test isolation.

The second half covers AI. It shows an agent that writes tests interactively in GitHub Copilot Chat, and it separates AI tests from agent tests. AI tests use data sets of input, prompt, model and expected-outcome permutations, with repeated runs because results are non-deterministic. It also covers test selection by type and coverage, MCP server execution, token consumption tracking and model choice for cost.

## Key points

- Propagated dependencies lift dependencies as proxies in the manifest so apps can be split without breaking external contracts. They work for one level only and cannot point to another propagated dependency.
- Test explorer support in AL runs and debugs tests in the editor, with results, call stacks and assert messages inline. It needs codeunits marked with the test attribute.
- New test codeunit properties cover required test permissions, test type (unit or integration) and required test isolation, to support test explorer and CI/CD pipelines.
- Internal visible to exposes internal procedures to specified apps, for example test facades. Anyone can specify an app ID in production, which the speaker flags as a security concern.
- AI tests use data sets with permutations of inputs, prompts, models and expected outcomes, and are rerun several times because AI output is non-deterministic. Copilot feature tests run in the eval suite, not the standard test tool.
- Native data-driven tests with test data source attributes and a custom context interface are not part of the product yet. They may be in a pre-release.
- Tests that use GUI-related code behave differently when run from VS Code versus the client. This is a known issue; for now use the classic test explorer in the client or the PowerShell cmdlets.

## Chapters

- [0:00](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=0s) Testing overview and roadmap
- [2:06](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=126s) Deterministic tests and propagated dependencies
- [3:18](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=198s) Application test library and real-world usage
- [4:59](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=299s) Internal visible to and test facades
- [7:43](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=463s) Test explorer support and properties
- [9:51](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=591s) Inner loop and outer loop testing
- [11:33](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=693s) AI test agent and interactive testing
- [16:10](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=970s) Defining AI tests and data-driven approach
- [20:13](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=1213s) Artifacts, multiple runs, and copilot feature testing
- [25:06](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=1506s) Native data-driven tests and test automation strategies
- [32:27](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=1947s) Test selection, coverage, inner loop optimization, and dependencies
- [37:44](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=2264s) MCP server, test explorer, token consumption, and model optimization

## Features

| Feature | Status | At | Evidence |
|---|---|---|---|
| Test Explorer support | status not stated, demoed | [7:54](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=474s) |  |
| Propagated dependencies | status not stated, demoed | [2:17](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=137s) |  |
| Test library properties | status not stated, demoed | [8:05](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=485s) |  |
| Internal visible to property | status not stated, demoed | [4:59](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=299s) |  |
| AI test agent | status not stated, demoed | [12:23](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=743s) |  |
| AI test with data-driven permutations | status not stated, demoed | [16:55](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=1015s) |  |
| AI test artifacts and multiple executions | status not stated, demoed | [19:02](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=1142s) |  |
| Copilot feature testing framework | status not stated, demoed | [20:35](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=1235s) |  |
| Agentic test simulation and step verification | status not stated, demoed | [23:31](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=1411s) |  |
| Native data-driven test support | generally available (roadmap [Build extensible and data-driven AL test suites](../features/573333.md)), demoed | [25:06](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=1506s) |  |
| Custom context interface for data-driven tests | announced, demoed | [26:31](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=1591s) | "This is what we have planned um for the pipeline for coming release" ([28:06](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=1686s)) |
| Agent-assisted test writing and review | status not stated | [28:33](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=1713s) |  |
| Performance test suite for long-running tests | status not stated | [29:18](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=1758s) |  |
| Test type filtering with subtype and transaction filters | status not stated | [31:33](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=1893s) |  |
| Test code lens for developers | status not stated | [32:11](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=1931s) |  |
| BTE code for faster inner loop testing | status not stated | [32:44](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=1964s) |  |
| Test isolation improvements with empty company | status not stated | [36:53](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=2213s) |  |
| MCP server for test execution | status not stated, demoed | [38:19](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=2299s) |  |
| AI test runner with token consumption tracking | status not stated, demoed | [39:38](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=2378s) |  |
| Test optimization through model and instruction tuning | status not stated | [40:36](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=2436s) |  |
| Running tests from VS Code | status not stated | [41:48](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=2508s) |  |
| Test generation with MCP and external tools | status not stated | [39:07](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=2347s) |  |

A status with a roadmap link comes from the Microsoft 365 roadmap feature this part of the video covers (matched by Haiku; links Opus dropped are not used); other statuses need a status word in the video itself.

## AL objects mentioned

As heard in the captions. A name that matches one object page by exact type and name links to it; the others stay as named.

- codeunit "test library" at [3:44](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=224s)
- codeunit "test good unit" at [3:44](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=224s)
- other "application test library" at [4:36](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=276s)
- codeunit "good unit" at [14:10](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=850s)
- codeunit "search gel account" at [20:35](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=1235s)
- codeunit "installation code unit" at [21:59](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=1319s)
- other "payables agent" at [20:50](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=1250s)
- other "library agent" at [23:57](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=1437s)

Not found in BC28-30: codeunit "test library", codeunit "test good unit", codeunit "good unit", codeunit "search gel account", codeunit "installation code unit".

## Quotes

- [0:16](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=16s) "so the the the question that we want to answer is does it still work and will it work in production right so what"
- [2:56](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=176s) "One thing to note here about propagated dependencies is that it only works for one level."
- [5:28](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=328s) "One thing to note here is that there is a security concern in the sense that anybody can specify to have this app ID"
- [7:54](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=474s) "As you might have seen from the uh the keynote, we now have support for the test explorer"
- [8:33](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=513s) "we have added the test type uh property to it as well which signals the scope of the uh the test in this code"

## Disclaimers in the video

- [12:07](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=727s) preview: there is another version that is more interactive and there's a version that we tested in the BC bench
- [25:06](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=1506s) not-in-this-release: native support for datadriven tests is not part of the the product yet but you might be able to find it in a pre-release
- [28:06](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=1686s) coming-later: This is what we have planned um for the pipeline for coming release
- [32:44](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=1964s) coming-later: we're looking forward to that inner loop optimization for us as developers
- [42:34](https://www.youtube.com/watch?v=9CW5mydS9Vs&t=2554s) not-in-this-release: from now until we fix that or get that problem solved, uh you need to use the the classic test ...

Presenters (as heard): Thomas, Arthur, Stefan, Espen, Freddy.
