Thanks Dominik. I extended the framework a bit. Now it is possible to describe a processor test via a json file.
So the only things that are required for a new test are: * The input.csv file * A csv containing the expected results * A json file with the configuration See [1] for examples. For the future, we can think of moving these configuration directories directly into the extensions project and load them dynamically when the tests start. For now, I would suggest leaving it in the Cypress directory, as I expect things will change in the near future. Philipp [1] https://github.com/apache/incubator-streampipes/tree/STREAMPIPES-380/ui/cypress/fixtures/pipelineElement > On 24. Jun 2021, at 08:13, Dominik Riemer <[email protected]> wrote: > > Hi Philipp, > > very cool! That's a very important addition and will ease our future release > processes. > Maybe Chris has some idea concerning simulation of the PLC adapter? > > Dominik > > > On 2021/06/23 11:04:19, Philipp Zehnder <[email protected]> wrote: >> Hi together, >> >> since we have many different components, it is always difficult to keep them >> up to date and to test when something changes. >> Therefore I started to implement an E2E test framework with the help of >> Cypress to test a StreamPipes instance when it was started. >> >> The code is currently in a separate branch [1]. I created a new folder in >> the ui, called cypress [2], containing all the test code. >> I also added a short README. >> >> The main idea is to test the workflows of the application as well as the >> adapters and processing elements. >> >> I created some example adapter tests [3], both for specific and generic >> adapters. >> For them, it must be ensured that we have access to the corresponding data >> source and that this contains some sample data. >> This will not work for all the adapters, but should be feasible for most of >> them. (e.g. for Kafka we can create a pipeline containing a Kafka sink and >> then read the data with the adapter). >> It would be great if we had some simulators for the PLCs, because then we >> can include tests for them as well. Does anyone have an idea how to do that? >> >> Additionally, I added two examples to test processing elements [4]. >> For a test definition, two csv files must be added to [5]. One contains the >> input data set and one contains the expected result. >> For the test a data set adapter is started, then a pipeline is build with >> the processing element and the data lake sink is used to store the data. >> Once the data is processed the result is exported from the data lake and >> compared to the file ‘expected.csv’. >> Currently the configuration for the processor test must be set in a >> typescript file, but for the future I plan to add a configuration file. Then >> we only require the files with the test data and the configuration. >> >> This is the first time I am implementing such a framework. So if any of you >> has more experience and ideas how we can improve it, please let me know. >> >> [1] https://github.com/apache/incubator-streampipes/tree/STREAMPIPES-380 >> <https://github.com/apache/incubator-streampipes/tree/STREAMPIPES-380> >> [2] >> https://github.com/apache/incubator-streampipes/tree/STREAMPIPES-380/ui/cypress >> >> <https://github.com/apache/incubator-streampipes/tree/STREAMPIPES-380/ui/cypress> >> [3] >> https://github.com/apache/incubator-streampipes/tree/STREAMPIPES-380/ui/cypress/integration/adapter >> >> <https://github.com/apache/incubator-streampipes/tree/STREAMPIPES-380/ui/cypress/integration/adapter> >> [4] >> https://github.com/apache/incubator-streampipes/tree/STREAMPIPES-380/ui/cypress/integration/pipelineElement >> >> <https://github.com/apache/incubator-streampipes/tree/STREAMPIPES-380/ui/cypress/integration/pipelineElement> >> [5] >> https://github.com/apache/incubator-streampipes/tree/STREAMPIPES-380/ui/cypress/fixtures/pipelineElement >> >> <https://github.com/apache/incubator-streampipes/tree/STREAMPIPES-380/ui/cypress/fixtures/pipelineElement> >> >> >> >>
