Hi experts of ODC,
We’re eager to adopt BDD as a core practice in our ODC development workflow—but getting started has proven to be more difficult than expected. Despite installing the available ODC Forge components developed by OutSystems, following official documentation, and reviewing various community posts, videos, and tutorials, I’ve yet to get a single BDD test running successfully on ODC.
Despite repeated efforts, including reaching out to OutSystems Support, it’s become clear that there is no workable guidance or documentation for implementing the BDD Framework on ODC. While the component is published by OutSystems, it is marked as “non-supported,” and lacks even the basics to get started (no examples, no docs, no ODC-specific guidance). This is particularly frustrating given the public promotion of testing frameworks at OutSystems events. I’m reaching out here in the hope that someone from the community has successfully implemented BDD on ODC or can clarify whether this is realistically achievable at this stage.
Questions:
Any help and/or guidance will be very much appreciated - even just addressing part of the questions. ---
References I have referred to, to no avail:
Issue solved by trial-and-error. NEO (Outsystem AI) has provided the most useful tip, albeit incomplete.See steps outlined on the Notion page in the "Getting BDD Working on ODC – Call for Guidance and Shared Learnings" Discussion.
Hi,
Your frustrations are entirely valid, especially because there is a gap in detailed documentation for using the BDD Framework specifically with ODC (OutSystems Developer Cloud). The framework is better documented for traditional OutSystems environments, but adapting it to ODC clearly requires some additional effort.
I'll try to address your critical questions based on the information available:
BDDFrameworkTestRunLib
According to the OutSystems documentation, the BDDFrameworkTestRunLib should be included in the testing app, i.e., the app where your tests are defined, rather than the app being tested. This library provides the API endpoints required for triggering and managing tests.
To configure it:
BDDFramework
For the API placeholders:
<serverurl>
https://your-environment.outsystemscloud.com
{TestESpace}
MyApp_Tests
{TestSuiteScreen}
MyFirst_TestSuite
The BDD Framework uses Gherkin-like syntax for tests, implemented through BDDScenario, BDDStep, and other web blocks on your Test Suite screen. Here’s the general approach:
BDDScenario
BDDStep
To ensure sequential execution:
Referencing Component Testing may help you understand the block organization and how to use reusable patterns effectively.
Testing triggers can be implemented in three ways:
I would strongly recommend reading Component Testing with BDDFramework Tools for guidance specific to ODC environments, even though the documentation may not yet be as comprehensive as needed for advanced setups.
If you’ve exhausted these steps and are still encountering issues, an alternative approach might involve leveraging a custom-built framework or extending the current BDD tools to better align with your ODC requirements. The community or OutSystems Support might be able to assist with those specialized adaptations.
Hopefully, this information helps clarify your next steps for implementing BDD with ODC. Let me know if you need further assistance with any specific part of the setup.
In ODC (OutSystems Developer Cloud), the traditional concept of a "Module" from OutSystems 11 has been replaced by Applications and Libraries. To derive the equivalent of a "module name," particularly in scenarios such as configuring {TestESpace} in the BDD Framework, you should use the Application or Library Name that encapsulates the logic or screens being referenced.
For example:
OutSystems ODC currently advises embedding test screens and logic within the same application that you're testing, to ensure compatibility and execution within a single transaction. The names of these applications or libraries act as the equivalent to what "Modules" were in OS 11 when configuring the BDDFramework.
For additional guidance on structuring and consuming the BDD Framework within ODC, you can refer to High Performance Continuous Delivery with ODC.
When configuring the BDDFramework's API for application names that contain spaces in ODC, you need to replace spaces in the application name with %20, which represents a space in a URL (URL encoding). For example:
%20
TestESpace
This approach is consistent with handling application names in any URL-based configuration, as spaces must be encoded to ensure compatibility with APIs.
Since none of the provided articles directly reference this question, feel free to confirm this information with OutSystems documentation or support for specific details on API usage.