Testing is a crucial part of the feature development lifecycle. Tecton provides interactive testing tools that allow you to:
- Unit test your feature definitions to ensure correct logic and transformations.
- Test batch, streaming, and on-demand features by running them locally with mock data.
- Debug feature queries to diagnose issues with performance, data quality or accuracy.
- Compare the results of
FeatureView.run()to understand their relationship.
These tools enable you to thoroughly test your features before enabling materialization or using them in production.
Unit Testing Feature Definitions
Tecton supports unit testing feature definitions to ensure the correctness of
your feature transformations. Unit tests are defined in files named
**/tests/*.py and are executed automatically when you run
tecton plan, or
For details on writing unit tests for your feature views, see Unit Testing.
Testing Batch Features
You can test batch features locally using the
This allows you to:
- Execute the feature transformation pipeline over a time range and inspect the results.
- Pass in mock data sources to control the input data.
- Test features with tile aggregations at the
- Compare the results of
get_historical_features()to understand their relationship.
For more details and examples, see Testing Batch Features.
Testing Streaming Features
You can test streaming features locally using the
StreamFeatureView.run_stream() method. This will start a Spark Structured
Streaming job and write results to a temp table which you can query to view
real-time feature data. You can also call
get_historical_features() on a
StreamFeatureView to get historical feature data from the offline store.
For more details and examples, see Testing Stream Features.
Testing On-Demand Features
You can test on-demand features locally using:
OnDemandFeatureView.run()to execute the feature with mock inputs.
OnDemandFeatureView.get_historical_features()to execute the feature over historical data.
For on-demand features with batch or streaming feature dependencies, you'll need
to provide mocks for those dependencies when using
For more details and examples, see Testing On-Demand Features.
If there are issues with feature data quality, accuracy or performance, you can
debug the queries generated by calls to
inspecting the query plan. The query plan provides details on each step of the
query, allowing you to diagnose the root cause of the issue.
For details on debugging feature queries, see Debugging Queries.