提供凭据配置后,--with-mocks选项不再起作用

2020-08-17 19:38发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


原始帖子在这里:

https://open.sap.com/courses/cp7/question/7ec44a77-d378-4462-a129-137332f7bc53

使用SCP目标服务,并在 package.json文件中配置 credentials.destination 属性,即使-,也会强制应用程序始终使用目标配置 使用命令 cds watch 提供了-with-mocks 选项。

这是框架中的错误吗? 我需要能够控制服务的行为,以便成功执行单元测试。 我知道您可以手动删除配置,但是这种方法无法实现设置自动化单元测试的目的。 请指教。 谢谢!

端子:

 jhodel:演示> cds手表

 [cds]-运行nodemon ...
 --ext cds,csn,csv,ts,mjs,cjs,js,json,属性,edmx,xml
 --exec cds服务于所有--with-mocks --in-memory吗?  

配置:

" cds":{
     "要求":{
         "北风": {
             " kind":" odata",
             " model":" srv/external/NorthWind",
             "凭据":{
                 "目的地":" NorthWind"
             }
         }
     }
 } 

我尝试使用以下文档中的配置配置文件:

https://cap.cloud.sap/docs/advanced/config#profiles

但是仍然没有运气。

这是使用配置文件后的最新配置:

" cds":{
         "要求":{
             "北风": {
                 " kind":" odata",
                 " model":" srv/external/NorthWind"
             }
         },
         " [开发]":{
             "要求":{
                 "北风": {
                     " kind":" odata",
                     " model":" srv/external/NorthWind",
                     "凭据":{
                         "目的地":" NorthWind"
                     }
                 }
             }
         }
     }
 

请注意,我在HANA DB情况下尝试了以下配置文件,它可以工作。 现在的问题是外部服务配置是否支持配置文件?

" cds":{
         "要求":{
             "D b": {
                 " kind":" sqlite",
                 "凭据":{
                     "数据库":" bookshop.db"
                 }
             }
         },
         "[生产]": {
             "要求":{
                 "D b": {
                     " kind":" hana"
                 }
             }
         }
     }
 

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


原始帖子在这里:

https://open.sap.com/courses/cp7/question/7ec44a77-d378-4462-a129-137332f7bc53

使用SCP目标服务,并在 package.json文件中配置 credentials.destination 属性,即使-,也会强制应用程序始终使用目标配置 使用命令 cds watch 提供了-with-mocks 选项。

这是框架中的错误吗? 我需要能够控制服务的行为,以便成功执行单元测试。 我知道您可以手动删除配置,但是这种方法无法实现设置自动化单元测试的目的。 请指教。 谢谢!

端子:

 jhodel:演示> cds手表

 [cds]-运行nodemon ...
 --ext cds,csn,csv,ts,mjs,cjs,js,json,属性,edmx,xml
 --exec cds服务于所有--with-mocks --in-memory吗?  

配置:

" cds":{
     "要求":{
         "北风": {
             " kind":" odata",
             " model":" srv/external/NorthWind",
             "凭据":{
                 "目的地":" NorthWind"
             }
         }
     }
 } 

我尝试使用以下文档中的配置配置文件:

https://cap.cloud.sap/docs/advanced/config#profiles

但是仍然没有运气。

这是使用配置文件后的最新配置:

" cds":{
         "要求":{
             "北风": {
                 " kind":" odata",
                 " model":" srv/external/NorthWind"
             }
         },
         " [开发]":{
             "要求":{
                 "北风": {
                     " kind":" odata",
                     " model":" srv/external/NorthWind",
                     "凭据":{
                         "目的地":" NorthWind"
                     }
                 }
             }
         }
     }
 

请注意,我在HANA DB情况下尝试了以下配置文件,它可以工作。 现在的问题是外部服务配置是否支持配置文件?

" cds":{
         "要求":{
             "D b": {
                 " kind":" sqlite",
                 "凭据":{
                     "数据库":" bookshop.db"
                 }
             }
         },
         "[生产]": {
             "要求":{
                 "D b": {
                     " kind":" hana"
                 }
             }
         }
     }
 
付费偷看设置
发送
3条回答
hongfeng1314
1楼 · 2020-08-17 19:46.采纳回答

乔德尔,你好

您可以通过在开发配置文件中仅提供url并在生产中提供目标位置(使用用于数据库的配置文件)来完成此操作。

" cds":{
         "要求":{
             "北风": {
                 " kind":" odata",
                 " model":" srv/external/NorthWind",
                 "凭据":{
                     " url":" "
                 }
             }
         },
         "[生产]": {
             "要求":{
                 "北风": {
                     " kind":" odata",
                     " model":" srv/external/NorthWind",
                     "凭据":{
                         "目的地":" NorthWind"
                     }
                 }
             }
         }
     } 

这应该在开发中使用URL,如果启动应用程序--with-mocks,则应使用"模拟" URL,而在"生产"中则使用目标。

最诚挚的问候,

Johannes

Baoming ROSE
2楼-- · 2020-08-17 19:51

嗨乔德,

我仔细检查过,就像 David Kunz 在openSAP论坛中说的那样。 如果在外部服务配置中提供了凭据,则它们具有优先级,并且--with-mocks将被忽略。

当您使用"生产"在本地进行测试时,您需要具有一个default-env.json,其中包含xsuaa和目标实例的凭据。 否则,您配置的目标将无法解析,并且您会观察到错误。

如果您在本地连接到HANA实例,则可能已经使用了此文件。

您可以在CP Cockpit中查找服务实例的凭据。

最诚挚的问候,

Johannes

葫芦娃快救爷爷
3楼-- · 2020-08-17 19:43

嗨,Johannes,

感谢您对凭据配置优先级的说明。

但是,我已经在使用 default-env.json中的正确凭据,如果我不使用"生产"配置文件,它已经可以工作。 但是,一旦我开始使用此生产资料并在本地进行测试,它就无法正常工作了。 相同的配置实际上在SCP中有效。 令人困惑的是,这种行为是令人困惑的。

我在最近的博客中提到了此行为- https://blogs.sap.com/2020/05/31/cap-unit-testing-using-mocha-and-chai/

不过 ,此帖子中的原始问题已得到解决。 再次感谢!

谢谢!

Jhodel

一周热门 更多>