Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

[AI Test Tool] Add Language Support, Capability and Frequency#5623

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Open
stkillen wants to merge1 commit intomain
base:main
Choose a base branch
Loading
fromfeatures/578022

Conversation

@stkillen
Copy link
Contributor

@stkillenstkillen commentedNov 25, 2025
edited by github-actionsbot
Loading

Summary

This PR adds support for multi-language testing, copilot capability tracking, and test run frequency classification. These additions enable better organization and automation of AI tests across different languages and execution scenarios.

  1. Multi-Language Support
    Added support for language for test inputs in the Data-Driven test extension. Localized versions of datasets are linked.
    Added support in the AI Test Tool for suites to have one or more languages, based on the localized versions of datasets.

  2. Copilot Capability Tracking
    Added Copilot Capability field to AIT Test Suite table. This enables categorization of test suites by the Copilot capability they test

  3. Run Frequency Classification
    Added AIT Run Frequency which is added as Run Frequency field to AIT Test Suite table. This enables scheduling based on frequency type.

  4. Updated test suite import/export
    Updated the XML import/export functionality to support all new fields. Example XML structure:

<AITSuite Code="W1-SOA" Description="..." Dataset="..." DefaultLanguage="en-US" Capability="Sales Order Agent" Frequency="Daily"...>  <Language Tag="cs-CZ" />  <Language Tag="da-DK" />  <Language Tag="en-US" />  ...</AITSuite>

Work Item(s)

FixesAB#578022

@github-actionsgithub-actionsbot added this to theVersion 28.0 milestoneNov 25, 2025
@stkillenstkillen marked this pull request as ready for reviewNovember 27, 2025 08:24
@stkillenstkillen requested review froma team ascode ownersNovember 27, 2025 08:24
CannotFindAITSuiteErr:Label'The specified Test Suite with code %1 cannot be found.', Comment ='%1 = Test Suite id.';
AITCode:Code[100];
LineNoFilter:Integer;
LanguageTag:Text[80];
Copy link
Contributor

Choose a reason for hiding this comment

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

Shouldn't this one be set form the OnAfterGetRecord trigger or OnAfterGetCurrentRecord?

ImportTestInputs(DatasetFileName, DatasetInStream, CallerModuleInfo, LanguageID, DatasetFileName);
end;


Copy link
Contributor

Choose a reason for hiding this comment

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

Nit - double blank line

/// <param name="DatasetInStream">The InStream of the dataset file.</param>
/// <param name="LanguageID">The language ID to use for the dataset import.</param>
/// <param name="Name">The name to use for the dataset import.</param>
procedure ImportTestInputs(DatasetFileName:Text;var DatasetInStream:InStream; LanguageID:Integer; Name:Text)
Copy link
Contributor

Choose a reason for hiding this comment

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

For now it is OK, however we may need to use the builder or factory patterns. We should not be adding additional overloads.

/// <summary>
/// Specifies that automation tests run on a daily basis against preview models.
/// </summary>
value(3; Preview)
Copy link
Contributor

Choose a reason for hiding this comment

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

Last 2 are not a frequency, but a type. It is combining multiple things. Maybe a separate module is better?

Copy link
Contributor

Choose a reason for hiding this comment

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

The enum could be renamed to AI Run Type it fits the purpose better, however the issue still remains that we are mixing time and what is being run

Editable = false;
ToolTip ='Specifies the version of the current test run. It is used for comparing the results of the current test run with the results of the previous test run. The version will be stored in the Log entries.';
}
field(14; "Copilot Capability";Enum "Copilot Capability")
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we need this?
It could be solved in the different ways if we need to filter out the things differently. Do we need to store this information on the suite level?

Do we want to limit the test suites to test only single copilot capabilites?

/// <returns>The display name of the language.</returns>
procedure GetLanguageDisplayName(LanguageID:Integer):Text
var
WindowsLanguage:Record "Windows Language";
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm not sure if this is the correct table. Should we use languages for supported languages? I could be wrong too

var
AITTestSuiteLanguage:Record "AIT Test Suite Language";
begin
AITTestSuiteLanguage.Init();
Copy link
Contributor

Choose a reason for hiding this comment

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

Uselles, init does nothing here


table149035 "AIT Test Suite Language"
{
Caption ='AI Test Suite Language';
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we need to persist this table? Can it be a temp table?
Second question - do we need a table at all? Can we get lists?

if Rec."Parent Group Code" <>''then
exit;

// Find if there's already a group with the same Group Name
Copy link
Contributor

Choose a reason for hiding this comment

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

Copilot comments that make the code harder to read... Lots of these comments.


localprocedure GetDefaultLanguageID():Integer
begin
exit(1033);// en-US
Copy link
Contributor

Choose a reason for hiding this comment

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

Shouldn't it be blank? I think we should distinguish between en-US and blank. If we want to use integers it can be zero, but blank would be better.

Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

@nikolakukrikanikolakukrikanikolakukrika left review comments

At least 2 approving reviews are required to merge this pull request.

Assignees

No one assigned

Labels

Projects

None yet

Milestone

Version 28.0

Development

Successfully merging this pull request may close these issues.

3 participants

@stkillen@nikolakukrika

[8]ページ先頭

©2009-2025 Movatter.jp