03.11.2019, 22:43 | #1 |
Участник
|
Юнит тест в D365FO: The class that generates data types for the 'GeneralJournalEntryJournalNumber' type is not found
Уважаемые знатоки. При запуске юнит тестов через раз вываливается ошибка типа The class that generates data types for the '...' type is not found.
База данных на виртуалке была восстановлена из бэкапа клиентской базы. Ошибка выпадает лишь примерно в половине запусков одного и того же теста. Воспроизводится даже на стандартом тесте (см. ниже). Вопрос: что с черным ящиком? Уже несколько часов на это убил. Цитата:
Test Name: InventCountingJournalSampleTest.createAndPostCountingJournal
Test FullName: InventCountingJournalSampleTest.createAndPostCountingJournal Test Source: K:\AosService\PackagesLocalDirectory\bin\XppSource\AtlSampleTests\AxClass_InventCountingJournalSampleTest.xpp : line 80 Test Outcome: Failed Test Duration: 0:00:29.266 Result StackTrace: Result Message: An unknown exception caught! (Actual: The class that generates data types for the 'GeneralJournalEntryJournalNumber' type is not found.) - Microsoft.Dynamics.Ax.Xpp.ErrorException: Posting - JournalJournal: DAT-000001Voucher: 00001The class that generates data types for the 'GeneralJournalEntryJournalNumber' type is not found. at Dynamics.AX.Application.NumberSeqApplicationModule.`internalLoadDataTypesFromEdt(Int32 _extendedTypeId, NumberSeqDatatype _numberSeqDataType, Boolean _createSequence) in xppSource://Source/ApplicationFoundation\AxClass_NumberSeqApplicationModule.xpp:line 661 at Dynamics.AX.Application.NumberSeqApplicationModule.internalLoadDataTypesFromEdt(Int32 _extendedTypeId, NumberSeqDatatype _numberSeqDataType, Boolean _createSequence) at Dynamics.AX.Application.NumberSeqApplicationModule.`generateModulesDataTypesFromEdt(Int32 _extendedTypeId, NumberSeqDatatype _numberSeqDataType) in xppSource://Source/ApplicationFoundation\AxClass_NumberSeqApplicationModule.xpp:line 602 at Dynamics.AX.Application.NumberSeqApplicationModule.generateModulesDataTypesFromEdt(Int32 _extendedTypeId, NumberSeqDatatype _numberSeqDataType) at Dynamics.AX.Application.NumberSequenceReference.`findByDatatypeAndScope(Int32 _edt, Int64 _scopeId, Boolean _update, Boolean @_scopeId_IsDefaultSet, Boolean @_update_IsDefaultSet) in xppSource://Source/ApplicationFoundation\AxTable_NumberSequenceReference.xpp:line 477 at Dynamics.AX.Application.NumberSequenceReference.findByDatatypeAndScope(Int32 _edt, Int64 _scopeId, Boolean _update, Boolean @_scopeId_IsDefaultSet, Boolean @_update_IsDefaultSet) at Dynamics.AX.Application.NumberSequenceReference.findByDatatypeAndScope(Int32 _edt, Int64 _scopeId) at Dynamics.AX.Application.NumberSeqReference.`findReference(Int32 _edt, NumberSeqScope _scope, Boolean @_scope_IsDefaultSet) in xppSource://Source/ApplicationFoundation\AxClass_NumberSeqReference.xpp:line 155 at Dynamics.AX.Application.NumberSeqReference.findReference(Int32 _edt, NumberSeqScope _scope, Boolean @_scope_IsDefaultSet) at Dynamics.AX.Application.NumberSeqReference.findReference(Int32 _edt) at Dynamics.AX.Application.LedgerParameters.`numRefGeneralJournalEntryJournalNumber() in xppSource://Source/Ledger\AxTable_LedgerParameters.xpp:line 571 at Dynamics.AX.Application.LedgerParameters.numRefGeneralJournalEntryJournalNumber() at Dynamics.AX.Application.LedgerPostingGeneralJournalController.new() in xppSource://Source/Foundation\AxClass_LedgerPostingGeneralJournalController.xpp:line 1048 at Dynamics.AX.Application.LedgerPostingGeneralJournalController..ctor() at Dynamics.AX.Application.LedgerPostingGeneralJournalController.`construct() in xppSource://Source/Foundation\AxClass_LedgerPostingGeneralJournalController.xpp:line 2080 at Dynamics.AX.Application.LedgerPostingGeneralJournalController.construct() at Dynamics.AX.Application.LedgerVoucher.new() in xppSource://Source/Foundation\AxClass_LedgerVoucher.xpp:line 1320 at Dynamics.AX.Application.LedgerVoucherPost..ctor() at Dynamics.AX.Application.LedgerVoucher.`newLedgerPost(DetailSummary _detailSummary, SysModule _sysModule, String _voucherSeriesCode, TransactionLogType _transactionLogType, String _transactionLogTxt, Boolean _approveJournal, Boolean _posting, Boolean @_transactionLogType_IsDefaultSet, Boolean @_transactionLogTxt_IsDefaultSet, Boolean @_approveJournal_IsDefaultSet, Boolean @_posting_IsDefaultSet) in xppSource://Source/Foundation\AxClass_LedgerVoucher.xpp:line 2039 at Dynamics.AX.Application.LedgerVoucher.newLedgerPost(DetailSummary _detailSummary, SysModule _sysModule, String _voucherSeriesCode, TransactionLogType _transactionLogType, String _transactionLogTxt, Boolean _approveJournal, Boolean _posting, Boolean @_transactionLogType_IsDefaultSet, Boolean @_transactionLogTxt_IsDefaultSet, Boolean @_approveJournal_IsDefaultSet, Boolean @_posting_IsDefaultSet) at Dynamics.AX.Application.LedgerVoucher.newLedgerPost(DetailSummary _detailSummary, SysModule _sysModule, String _voucherSeriesCode, TransactionLogType _transactionLogType, String _transactionLogTxt, Boolean _approveJournal, Boolean _posting) at Dynamics.AX.Application.JournalCheckPostLedger.`newLedgerVoucher(JournalTransMap _journalTrans, Boolean _checkMode) in xppSource://Source/Foundation\AxClass_JournalCheckPostLedger.xpp:line 258 at Dynamics.AX.Application.JournalCheckPostLedger.newLedgerVoucher(JournalTransMap _journalTrans, Boolean _checkMode) at Dynamics.AX.Application.JournalCheckPostLedger.`postVoucher(JournalTransList _journalTransList) in xppSource://Source/Foundation\AxClass_JournalCheckPostLedger.xpp:line 374 at Dynamics.AX.Application.JournalCheckPostLedger.postVoucher(JournalTransList _journalTransList) at Dynamics.AX.Application.JournalCheckPostLedger.`postJournal(JournalTransList _journalTransList) in xppSource://Source/Foundation\AxClass_JournalCheckPostLedger.xpp:line 347 at Dynamics.AX.Application.JournalCheckPostLedger.postJournal(JournalTransList _journalTransList) at Dynamics.AX.Application.InventJournalCheckPost_Movement.`postJournal(JournalTransList _journalTransList) in xppSource://Source/Foundation\AxClass_InventJournalCheckPost_Movement.xpp:line 550 at Dynamics.AX.Application.InventJournalCheckPost_Movement.postJournal(JournalTransList _journalTransList) at Dynamics.AX.Application.JournalCheckPost.`runPost() in xppSource://Source/Foundation\AxClass_JournalCheckPost.xpp:line 767 at Dynamics.AX.Application.JournalCheckPost.runPost() at Dynamics.AX.Application.JournalCheckPost.`run() in xppSource://Source/Foundation\AxClass_JournalCheckPost.xpp:line 647 at Dynamics.AX.Application.JournalCheckPost.run() at Dynamics.AX.Application.SysOperationSandbox.`startOperation(SysOperationIMarshalledRun operationInstance) in xppSource://Source/ApplicationPlatform\AxClass_SysOperationSandbox.xpp:line 100 at Dynamics.AX.Application.SysOperationSandbox.startOperation(SysOperationIMarshalledRun operationInstance) at Dynamics.AX.Application.Runbase.`runOperation() in xppSource://Source/ApplicationPlatform\AxClass_Runbase.xpp:line 804 at Dynamics.AX.Application.Runbase.runOperation() at Dynamics.AX.Application.AtlCommandInventJournalPost.`executeTask() in xppSource://Source/AtlApplicationSuite\AxClass_AtlCommandInventJournalPost.xpp:line 11 at Dynamics.AX.Application.AtlCommandInventJournalPost.executeTask() at Dynamics.AX.Application.AtlCommand.`execute() in xppSource://Source/AtlFoundation\AxClass_AtlCommand.xpp:line 22 at Dynamics.AX.Application.AtlCommand.execute() at Dynamics.AX.Application.AtlEntityInventCountingJournal.`post() in xppSource://Source/AtlApplicationSuite\AxClass_AtlEntityInventCountingJournal.xpp:line 105 at Dynamics.AX.Application.AtlEntityInventCountingJournal.post() at Dynamics.AX.Application.InventCountingJournalSampleTest.`createAndPostCountingJournal() in xppSource://Source/AtlSampleTests\AxClass_InventCountingJournalSampleTest.xpp:line 149 at Dynamics.AX.Application.InventCountingJournalSampleTest.createAndPostCountingJournal() at InventCountingJournalSampleTest::createAndPostCountingJournal(Object , Object[] , Boolean& ) at Microsoft.Dynamics.Ax.Xpp.ReflectionCallHelper.MakeInstanceCall(Object instance, String MethodName, Object[] parameters) at Microsoft.Dynamics.Ax.Xpp.DictClass.Callobject(String _methodName, XppObjectBase _Called, Object[] varArgs) at Dynamics.AX.Application.SysTest.`invoke(XppObjectBase _object, String _method, Object _optional, Boolean @_optional_IsDefaultSet) in xppSource://Source/ApplicationFoundation\AxClass_SysTest.xpp:line 1095 at Dynamics.AX.Application.SysTest.invoke(XppObjectBase _object, String _method, Object _optional, Boolean @_optional_IsDefaultSet) at Dynamics.AX.Application.SysTest.invoke(XppObjectBase _object, String _method) at Dynamics.AX.Application.SysTest.`doRunTestMethod(SysTestResult _result) in xppSource://Source/ApplicationFoundation\AxClass_SysTest.xpp:line 719 Infolog Messages: <error>Posting - Journal/Journal: DAT-000001/Voucher: 00001/The class that generates data types for the 'GeneralJournalEntryJournalNumber' type is not found.<\error> |
|
04.11.2019, 10:10 | #2 |
Участник
|
Может быть не указана связь с моделью? т.е. модель где выполняется тест не видит ту модель в которой этот класс. Попробуйте указать все модели как референсные
|
|
04.11.2019, 12:12 | #3 |
Участник
|
Таким случайным образом падает даже стандартный тест InventCountingJournalSampleTest.createAndPostCountingJournal(), который лежит в модели "Acceptance Test Library - Standard Tests" и уж по-любому должен работать. Я не могу изменить референсы этой модели.
Вот результат серии запусков InventCountingJournalSampleTest.createAndPostCountingJournal: OK OK Fail OK OK Fail OK Fail Если бы не хватало референса на модель, я бы ожидал Fail всё время, но чтобы вот так, случайным образом? На стандартной виртуалке с Contoso этот же тест работает всегда. Может есть какой-то способ прочистить мозги номерным сериям, который можно было бы вставить в setUp() метод? |
|
05.11.2019, 00:03 | #4 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: dech (3). |
05.11.2019, 12:13 | #5 |
Участник
|
|
|
Теги |
d365fo, unit test |
|
|