Skip to content

Fix Missing Test Apps after Import-TestToolkitToBcContainer #3841

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

ChrisBlankDe
Copy link
Contributor

@ChrisBlankDe ChrisBlankDe commented Feb 25, 2025

Fix #3729

this would have been simpler / nicer if msft had a consistent folder structure and naming pattern :/

Symbols:

  • ✅ Installed
  • ❌ Not Installed
  • ✴️ Changed. Was not installed, newly installed
AppId AppName Plain Container includeTestRunnerOnly includeTestFrameworkOnly includeTestLibrariesOnly All
2156302a-872f-4568-be0b-60968696f0d5 AI Test Toolkit
a190e87b-2f59-4e14-a727-421877802768 API - Cross Environment Intercompany
a2cc2ef8-949f-43d4-45b8-10bd6f8bc62c API Reports - Finance
e7320ebb-08b3-4406-b1ec-b4927d3e280b Any
c1335042-3002-4257-bf8a-75c898ccb1b8 Application
a41b0c3e-bf1c-4c97-ad1b-b430a3933ada Audit File Export
5e327e42-4ec3-4667-8d20-cccd38f867c6 Audit File Export Tests ✴️
63c9fbe6-d4f3-458c-8c25-644c90a0874a Bank Account Reconciliation With AI
2932b2a8-7399-4f8c-b1c0-1acfc2014ffb Bank Account Reconciliation With AI Tests ✴️
437dbf0e-84ff-417a-965d-ed2bb9650972 Base Application
6992416f-3f39-4d3c-8242-3fff61350bea Business Central Cloud Migration - Previous Release
57623bfa-0559-4bc2-ae1c-0979c29fc8d1 Business Central Cloud Migration API
334ef79e-547e-4631-8ba1-7a7f18e14de6 Business Central Intelligent Cloud
f3552374-a1f2-4356-848e-196002525837 Business Foundation
bee8cf2f-494a-42f4-aabd-650e87934d39 Business Foundation Test Libraries
c14a958d-a968-4b0d-9c6b-f92e8274a862 Business Foundation Tests
c512d720-63b9-4b26-b062-a0c09b4ed322 Company Hub
5a0b41e9-7a42-4123-d521-2265186cfb31 Contoso Coffee Demo Dataset
c471774f-4b9e-45eb-9619-e7e0b96a8b98 Contoso Coffee Demo Dataset Tests ✴️
93a71c5e-237e-47e8-835b-1a7f9e844f1b Create Product Information With Copilot
6813edab-d08b-4d30-a119-11f984e06669 Czech language (Czechia)
bdbd8422-02d6-4b5f-9a35-948c5700a436 Danish language (Denmark)
7819d79d-feea-4f09-bbed-5bbaca4bf323 Data Archive
c0146fcd-d0fe-4eec-8857-8a66551d010d Data Archive Tests ✴️
ac14293f-1eb7-4a7b-9936-b280da31970b Data Search
c0146a0a-d0fe-4eec-8857-8a66551d010d Data Search Tests ✴️
fbc91b81-1986-420f-9dd4-c41b381364ab Dutch language (Belgium)
499ec319-ef73-463a-8d31-d66a58e2325a Dutch language (Netherlands)
cc11c22e-5ca3-423f-8804-88cac6d91983 Dynamics BC Excel Reports
4807959b-777e-410d-9c90-e3c38e01730e Dynamics BC Excel Reports Tests ✴️
f35c56a6-7c5f-4dbe-89c4-fef5145d00f4 E-Document Connector - Avalara
b4305a63-f987-425b-8520-ca9ccf7b22b6 E-Document Connector - B2Brouter
f4a198ad-cd8c-44bb-aff1-814e0e28ab79 E-Document Connector - Logiq
ec6b3b0e-f983-408b-8476-bafb4368ecbc E-Document Connector - Microsoft 365
d852a468-263e-49e5-bfda-f09e33342b89 E-Document Connector - Pagero
b56171bd-9a8e-47ad-a527-99f476d5af83 E-Document Connector - SignUp
e1d97edc-c239-46b4-8d84-6368bdf67c8b E-Document Core
de0dddf3-9917-430d-8d20-6e7679a08500 E-Document Core Demo Data
e1d97edc-c239-46b4-8d84-6368bdf67c8c E-Document Core Tests ✴️
d196d21b-75c3-45da-831b-345055b9d25f ESG Statistical Accounts Demo Tool
0a9a9ce1-6f98-4cf0-82e2-0b3e7cabb32a EU 3-Party Trade Purchase
3df4eddc-d735-46f7-9645-3c027296d54f EU 3-Party Trade Purchase Tests ✴️
08d69832-9231-429e-be2c-8bab2c96905b Email - Current User Connector
ac0b4daa-f46f-42ef-9468-6b623298e36b Email - Current User Connector Tests ✴️
aceb66c8-472e-437c-81d3-27e6c07d0f14 Email - Microsoft 365 Connector
c436fd91-e29f-406c-b91f-33cd176ca9be Email - Microsoft 365 Connector Tests ✴️
e6328152-bb29-4664-9dae-3bc7eaae1fd8 Email - Outlook REST API
8fc50dfb-d338-4fd9-9499-5e44cc8cbf50 Email - SMTP API
51493bda-1ba4-46dc-a72e-65eadc0e63b1 Email - SMTP API Test Library ✴️ ✴️
b300f707-59e0-4ce4-9770-85b3965a1d11 Email - SMTP API Tests ✴️
68e13fa3-217a-4be0-9141-99e5bf0ca818 Email - SMTP Connector
725ef69c-e9f2-4dfb-8170-0faedcd52a5b Email - SMTP Connector Tests ✴️
e2ae191d-8829-44c3-a373-3749a2742d4e Enforced Digital Vouchers
928f7b70-0dbd-431a-beb5-f45c4adbd361 Enforced Digital Vouchers Test Library ✴️ ✴️
f0eb8756-ea72-4ef8-b0de-686d2a44b259 Enforced Digital Vouchers Tests ✴️
1732e878-cee4-4787-9456-05f25f4118da English language (Australia)
fe2381dc-81ce-4d36-9107-6aae586a6720 English language (Canada)
3721d519-67eb-43ee-b55b-8a85c87c292d English language (New Zealand)
0c098979-eadd-452c-90b1-6fd183e95651 English language (United Kingdom)
44a6a6d5-4478-4f1e-a94e-421407fc122c English language (United States)
64c9d5e2-7744-4866-bc0e-5ebc2898e651 Error Messages with Recommendations
5f2328eb-b988-422b-8163-0bd3f3ae5d07 Error Messages with Recommendations Tests ✴️
2a89f298-7ffd-44a5-a7ce-e08dac98abce Essential Business Headlines
75d80607-b974-4b20-bac2-d9ab5b1e44e2 Essential Business Headlines Test ✴️
c9ce86fe-cb70-4b79-be03-d21856b1a4ca External File Storage - Azure Blob Service Connector
79447b11-8301-4d02-a546-2261eb811296 External File Storage - Azure File Service Connector
34bfcef7-f8ed-449f-94be-74024cadba3b External File Storage - SharePoint Connector
1ba1031e-eae9-4f20-b9d2-d19b6d1e3f29 Field Service Integration
f8555f70-8cfe-46a2-b961-444c8af4cf4f Finnish language (Finland)
cb8f8fd2-7704-470a-bc12-40ff71ee6a30 French language (Belgium)
5363109d-5605-4580-9cb7-5b577d00bbb2 French language (Canada)
c75a45c6-4e83-46e1-b17b-48c6506c19f3 French language (France)
865bb488-eec0-4d05-b196-258fd1ff8363 French language (Switzerland)
3a66faf9-4111-4ec3-be7e-7ca33e9421a0 German language (Austria)
e2d4cb5e-9120-4a92-824d-2e1e5dc1a699 German language (Germany)
4e7ce29d-c973-4e89-8230-5e13b26ce9fb German language (Switzerland)
2ed02040-0300-4d64-b8c5-a48d09dddfc6 Icelandic language (Iceland)
58623bfa-0559-4bc2-ae1c-0979c29fd9e0 Intelligent Cloud Base
70912191-3c4c-49fc-a1de-bc6ea1ac9da6 Intrastat Core
f4d9555a-a512-45de-a6d6-27a8b6077139 Intrastat Core Tests ✴️
51ba3799-d76c-4cf0-afd3-e2c2f6c0576b Italian language (Italy)
a5d61952-f432-4ee6-8686-e8aa5d3dedc0 Italian language (Switzerland)
3d5b2137-efeb-4014-8489-41d37f8fd4c3 Late Payment Prediction
95c9860d-6770-4f5a-9d74-e9636f628299 Late Payment Prediction Tests ✴️
dd0be2ea-f733-4d65-bb34-a28f4624fb14 Library Assert
b5034210-b258-4983-8858-f5cbfd54cb35 Library Outlook REST API ✴️ ✴️
5095f467-0a01-4b99-99d1-9ff1237d286f Library Variable Storage
ce917438-506c-4724-9b01-13c1b860e851 Microsoft Pay Payments
cc85911b-390d-42d5-b4bb-1ec519019a30 Norwegian language (Norway)
e19f226a-3658-49d1-a8cb-e9e9b0fef27b OnPrem Permissions Test ✴️
38bef445-b51b-4f6c-bd33-1eb4b46e7b07 PayPal Payments Standard Tests ✴️
14aa1237-2f69-4c25-9a68-fa7d54e08613 Payables Agent
d09fa965-9a2a-424d-b704-69f3b54ed0ce Payment Links to PayPal
64977288-facd-4b48-aaaa-bb0e288edfb3 Payment Practices
64977288-facd-4b48-aaaa-bc0e288edfb3 Payment Practices Tests ✴️
75f1590f-55c5-4501-ae63-bada5534e852 Performance Toolkit
40860557-a18d-42ad-aecb-22b7dd80dc80 Permissions Mock
e4e86220-cac0-4ec3-b853-7c2fa610399d PowerBI Reports
b4e48c9c-0deb-49a4-ae70-662b33565b1b PowerBI Reports Test Library ✴️ ✴️
7628c8de-f349-4806-a540-21b0044f7722 PowerBI Reports Tests ✴️
21fac4db-4559-4aa8-a2bf-d08469614599 Prevent Metadata Updates Library ✴️ ✴️
a53a4bb0-aa53-8ff8-77d6-fe3388db0eb8 Recommended Apps
4b1cbbc7-a6fd-442c-87b1-60b1d2b059d7 Recommended Apps Tests ✴️
cda5ad98-6726-4b70-a909-04d33c948314 Report Layouts Tests ✴️
87990153-0e35-4e5d-ba61-2e93077d1699 Review General Ledger Entries
80e80fa9-7100-4885-852c-ac6b053298dd Russian language (Russia)
4ce93371-6bd6-4027-a78f-021064ad250e SAF-T
dfe6916f-cba8-4973-afdc-1544705c661f SAF-T Tests ✴️
dd3f226b-40bf-4b3c-9988-9b1e0f74edd8 Sales Lines Suggestions
1defd6cb-5fb9-4717-b50a-9d7f2b59fe88 Sales Lines Suggestions Tests ✴️
23b1772f-b8b8-4e87-9339-9ff7cbb2364b Sales Order Agent
c526b3e9-b8ca-4683-81ba-fcd5f6b1472a Sales and Inventory Forecast
cbb50af4-5f42-4b8d-a2dc-1afc5034411d Sales and Inventory Forecast Tests ✴️
8c972578-fe72-4aa5-ae51-cc5575fef2ea Send To Email Printer
e97bbbc7-16b6-470b-9428-376baa778970 Send remittance advice by email
e2ae191d-8829-44c3-a373-3749a2742d4d Service Declaration
ec255f57-31d0-4ca2-b751-f2fa7c745abb Shopify Connector
32f586f0-69fd-41bb-8e97-98c869856360 Shopify Connector Test ✴️
79b1a79a-2f66-4736-bc1b-8abb3537eb51 Simplified Bank Statement Import
fdf552ef-df0f-4caa-9a40-4b13b527e510 Simplified Bank Statement Import Test ✴️
9e737fc0-589a-436f-8b2f-0f27da2d2afd Spanish language (Mexico)
aefe4506-6a2f-4ce4-8ba3-2c87dbc26f53 Spanish language (Spain)
ea130081-c669-460f-a5f4-5dde14f03131 Statistical Accounts
f963cb1a-e16e-48af-b3fd-c0dd695d0998 Statistical Accounts Test ✴️
3099ffc7-4cf7-4df6-9b96-7e4bc2bb587c Subscription Billing
8a3db2bc-9378-4d0f-b89a-a7dea0555449 Subscription Billing Demo Data
2ac317ef-11a5-4753-92f4-31c84b520c7b Subscription Billing Test ✴️
b3780cd9-f8f8-4a83-a4d5-0c2ad87b28af Sustainability
a0673989-48a4-48a0-9517-499c9f4037d3 Sustainability Contoso Coffee Demo Dataset
6723f320-28a1-40cc-bf4d-d4dce362cb39 Sustainability Tests ✴️
ae1f0b7f-1ae3-4ca1-aeba-adc431cc12f9 Swedish language (Sweden)
63ca2fa4-4f03-4f2b-a480-172fef340d3f System Application
0d60b215-6ee1-4789-8e53-866cfa50c23c System Application Test
9856ae4f-d1a7-46ef-89bb-6ef056398228 System Application Test Library
23de40a6-dfe8-4f80-80db-d70f83ce8caf Test Runner
1fb2e583-f2c3-4484-a8d4-387e3adce46d Tests-Bank
155bc500-e420-4113-803e-7aa8e8eea112 Tests-CRM integration
69837cc7-28e9-4db0-9a0f-6616f259c91a Tests-Cash Flow
16419195-5f01-494f-9b02-34363dade478 Tests-Cost Accounting
85125fdc-eb14-4f16-8c5d-6e4589aceb1d Tests-Data Exchange
6d9b6d22-97e0-4774-982a-2097fd660f97 Tests-Dimension
fa3e2564-a39e-417f-9be6-c0dbe3d94069 Tests-ERM
c81764a5-be79-4d50-ba3e-4ade02073780 Tests-Fixed Asset
790cf8ce-f921-42a8-8c34-a0af2ddf6265 Tests-General Journal
474a0e0a-d177-4c70-aae0-4ff674a04e74 Tests-Graph
2b634ad5-63df-4a3c-9e35-e347f646e940 Tests-Integration
cc2187fe-1b59-4f29-8a75-76d76c88c6dc Tests-Invoicing
9bf23d52-8194-4857-8896-5e48b24493f6 Tests-Job
bd6c6741-7734-4109-bf2d-db58545d482c Tests-Local
74e323c4-70a3-49ce-b18e-fe9ccaff01d3 Tests-Marketing
4564dd2f-e8b2-41ff-9905-9d7a950475a5 Tests-Misc
c49d9d12-1c94-4362-8bf7-3cce15be54dc Tests-Monitor Sensitive Fields
d94a0cee-f211-4941-b609-7c984f85ad03 Tests-Permissions
e94328f1-bf57-43d3-a862-93d54f83a9d7 Tests-Physical Inventory
fdddc5f1-3294-485f-aed1-0b798b6edd69 Tests-Prepayment
7fe10be7-575f-4cce-957b-bcd0df8f9bd7 Tests-Rapid Start
79447c3f-14b4-4c10-8779-03911f30ab26 Tests-Report
0243a4ea-21b3-4fa8-ad70-9915a4400be0 Tests-Resource
ab333b30-f600-4d0e-a519-73684ff42504 Tests-Reverse
6f0b528b-a4de-4ccd-a948-d1350e228e4a Tests-SCM
83e06f31-ba58-4901-a7fb-91c0466a7397 Tests-SCM-Assembly
88f3615c-370c-4f39-bb5f-54e096c984e9 Tests-SCM-Manufacturing
e737590a-fede-4692-ac4e-d1d4849dd043 Tests-SCM-Service
c9bea3a6-a9af-499f-b78a-130a42eceedd Tests-SMB
5d86850b-0d76-4eca-bd7b-951ad998e997 Tests-TestLibraries
d0e99b97-089b-449f-a0f5-a2ab994dbfd7 Tests-Upgrade
9cc7e87b-8ba9-4c23-82d4-8af3e919c84b Tests-User
0f0955b8-92e2-4ce2-a580-3c4583dde9ae Tests-VAT
c4795dd0-aee3-47cc-b020-2ee93a47d4c4 Tests-Workflow
7961e9dc-a8e5-49b1-839b-3a78803a4cb8 Troubleshoot FA Ledger Entries
2654d7e7-9afd-4947-9e02-6bb8f3e0cd04 Universal Print Integration
c50a4bf0-db51-4ad2-88d5-fe2287da0eb8 VAT Group Management
3a0baab8-a5fc-433c-88b1-60b1d2b059d7 VAT Group Management Tests ✴️
8b6f7477-3589-44b7-b84f-d87f09bc764e _Exclude_APIV1 _ Tests ✴️
8afe7b40-8c87-4beb-ada0-451d1761bf95 Exclude_APIV1
b59379f5-36b3-4327-be62-c13dac9c87cf _Exclude_APIV2 _ Tests ✴️
10cb69d9-bc8a-4d27-970a-9e110e9db2a5 Exclude_APIV2
7a129d06-5fd6-4fb6-b82b-0bf539c779d0 _Exclude_Bank Deposits
55456f47-e1bc-4ed6-98a0-8336de116d00 _Exclude_Bank Deposits Tests ✴️
6f2c034f-5ebe-4eae-b34c-90a0d4e87687 Exclude_Business_Events
d65067bd-e0d4-4bab-a5c5-9c0eb94d8f88 _Exclude_Business_Events_Test ✴️
8b3609cf-3947-44c3-9f20-ce6edc6da33f Exclude_ClientAddIns
16c26bda-5f9c-4a77-a17e-4835f06062c0 _Exclude_Connectivity Apps
114e4e19-182b-42e2-b5a9-91d8b8ee8ce1 _Exclude_Email Logging Using Graph API
bee0d27a-b577-4acc-9eca-6eb63b5f6029 _Exclude_Email Logging Using Graph API Tests ✴️
a01864f8-9c3f-42f6-8328-8d7be1ce3e20 _Exclude_Master_Data_Management
044e7b4c-db9b-43c6-8a08-e1fd8954d40c _Exclude_Master_Data_Management_Test_Library ✴️ ✴️
f541fb4a-19ff-4a99-8a3c-e2af38abec49 _Exclude_Master_Data_Management_Tests ✴️
e86e9234-8b95-459d-a9ba-4d901208ca38 _Exclude_Microsoft Dynamics 365 - SmartList
672777d5-ab26-4369-b334-6f04256efffd _Exclude_Onboarding Signals
0253c250-e019-491f-adf4-e8fd8f10e6b9 _Exclude_PlanConfiguration _ Tests ✴️
5f92e0d5-a60e-435f-ae85-71ec28dd3e41 Exclude_PlanConfiguration
b7174aae-753c-4e71-bacb-d973995dce5e _Exclude_ReportLayouts
6cba115c-63f1-4b08-9e0d-8872a86458db _Exclude_Review_General_Ledger_Entries_Tests ✴️
fbb56a54-4f3b-4d2f-9330-ed8921ec4ec7 Exclude_SyncBaseApp

@ChrisBlankDe ChrisBlankDe requested a review from a team as a code owner February 25, 2025 15:43
Copy link
Contributor

@freddydk freddydk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure that adding these:
'Microsoft_Library-NoTransactions.app',
'Microsoft_Prevent Metadata Updates.app'

won't break all tests.

I think the no transactions is an app you an install to make sure that no transactions are made while running tests - and the same with metadata.

@freddydk
Copy link
Contributor

@ChrisBlankDe - have you tested this?

As already mentioned - I assume that all tests will stop working if I install the NoTransactions app

and if there is one thing I really don't want to do, then it is to merge a PR, which breaks the test run of every single partner on planet earth:-)

@ChrisBlankDe
Copy link
Contributor Author

Just double checked this.
NoTransactions must not be imported. - i will provide a fix for that
Prevent Metadata Updates is just a Test Library / Framework. The app only consists of a single instance codeunit ("Block Changes to System Tables") with a manual EventSubscriberInstance

@freddydk
Copy link
Contributor

First of all, you are right that it is a mess:-)

Prevent Metadata Updates is just a Test Library / Framework. The app only consists of a single instance codeunit ("Block Changes to System Tables") with a manual EventSubscriberInstance

But, if any test changes system tables they will fail with prevent metadata updates on.
Example: if a test installs an app or like - right?

On the applications - have you tested that these test apps are running? I excluded a number of test apps, which shouldn't be run.

Lastly - if the SMTP Test API library should be included, it also needs to be included in the compilerfolder code.

@ChrisBlankDe ChrisBlankDe marked this pull request as draft February 27, 2025 08:35
@ChrisBlankDe
Copy link
Contributor Author

I converted this PR back to draft.

i will try to implement this also for compilation folder (just used by run-alpipeline :/ )
also run a big test and dokument in this pr.

@ChrisBlankDe ChrisBlankDe marked this pull request as ready for review June 23, 2025 12:45
@ChrisBlankDe
Copy link
Contributor Author

i have revised the PR again and tested it properly. the description has been supplemented so that it is now obvious which apps have changed.
i would be happy to receive a review/merge.

@ChrisBlankDe
Copy link
Contributor Author

@mazhelez would it be possible for you to review this?

@mazhelez
Copy link
Collaborator

mazhelez commented Jul 2, 2025

@mazhelez would it be possible for you to review this?

Will do. Thanks for tagging me, as I haven't developed a habit to monitor PRs in this repo yet.

@@ -457,9 +458,19 @@ function GetTestToolkitApps {
@(get-childitem -Path "C:\Applications\*.*" -recurse -filter $_)
}
}
$apps += @(get-childitem -Path "C:\Applications\*.*" -recurse -filter "Microsoft_Tests-*.app") | Where-Object { $_ -notlike "*\Microsoft_Tests-TestLibraries.app" -and ($version.Major -ge 17 -or ($_ -notlike "*\Microsoft_Tests-Marketing.app")) -and $_ -notlike "*\Microsoft_Tests-SINGLESERVER.app" }
$apps += @(get-childitem -Path "C:\Applications\*.*" -recurse) | ? { $_.name -like "Microsoft_Tests-*.app" -or $_.FullName -match '\\Test\\.*[ _]Test(?:s?| Automations).app' } | Where-Object { ($version.Major -ge 17 -or ($_ -notlike "*\Microsoft_Tests-Marketing.app")) }
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It almost looks like it's easier just to explicitly list what to include and/or exclude.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i was not sure about this while implementing. i decide for this solution so we are not forced to change this when msft adds a new app. on the other side, it is not possible to see at a quick glance which apps are published

as pr description says this would have been simpler / nicer if msft had a consistent folder structure and naming pattern :/

we currently have around 82 test apps and 12 libraries
if you prefer to list all apps just say a word.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as pr description says this would have been simpler / nicer if msft had a consistent folder structure and naming pattern :/

That we definitely agree on. But this is also not something we can change overnight.

Both explicitly listing the apps to include/exclude and matching the name with a patter have advantages and disadvantages.
I am more leaning towards the former as:

  • it's easier to get an overview which apps are included/excluded
  • new apps are not being added by default, which might be a good thing as there'll be no side effects.

What do you think?

ChrisBlankDe and others added 2 commits July 4, 2025 16:34
Co-authored-by: Maria Zhelezova <43066499+mazhelez@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Missing Test Apps after Import-TestToolkitToBcContainer
3 participants