我尝试在 ABAP 中为我的类编写单元测试,但是当我在 Eclipse 中手动编写代码时,IDE 告诉我没有测试类,也没有可执行测试。如果我在 SAP GUI 中使用向导,生成的测试有效并且我可以用我的测试替换它 - 然后也有效 - 但是当我关闭 SAP GUI 并再次重新打开它时,它不会再次检测到任何测试类或可执行测试。
这对我来说似乎是一个错误,或者我正在使用的 SAP 版本有问题:
SAP NETWEAVER 7.4 15 (06/2016) sap.com SAP NETWEAVER 7.4
我是一名初学者 ABAP 程序员,但我已经通过测试成功地覆盖了我的另一门类(class),我在那里没有任何问题。唯一的区别是另一个类运行在具有更高版本 SAP - 7.5 的不同系统上。
你遇到过这样的问题吗?
最佳答案
经过几天的简单研究,我发现有一个 SAP Note 2598526 几乎描述了我遇到的问题。
为了将来引用,它指出:
Reason and Prerequisites: The ABAP unit test framework calls the class CL_ABAP_COMPILER to determine the test classes from the current program. However, the call of the class CL_ABAP_COMPILER terminates with an internal error.
Solution: If the description applies to your situation, please install a new kernel that contains the patch "ABAP-SYCH: Dumped TYPES table has dangling type ids".
现在我们将尝试修补内核,如果有帮助我会通知您。
编辑 2019 年 6 月 5 日:
所以...补丁对解决这个问题没有帮助,但看起来我终于找到了解决方案。它分为三个步骤:
- 打开 SE03 并确保此处列出的命名空间具有开发许可并且处于生产角色 (P)
- 打开报告:SATC_AC_INIT_NAMESPACE_REG 并将命名空间注册到 ATC(ABAP 测试驾驶舱)——否则驾驶舱将忽略命名空间并且不会扫描它以查找测试类。
- 命名空间的注册将创建一个请求,以便传输它并响应具有单元测试的类。
执行此操作时,您应该能够运行测试 - 在 SAP GUI 和 Eclipse 中都没有问题:)。
关于unit-testing - ABAP 单元测试仅在生成后立即检测/执行。如何让测试类可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55817336/