You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@arrow.apache.org by GitBox <gi...@apache.org> on 2021/12/22 00:52:15 UTC

[GitHub] [arrow-datafusion] matthewmturner commented on a change in pull request #1471: Add section on testing to the Developers doc

matthewmturner commented on a change in pull request #1471:
URL: https://github.com/apache/arrow-datafusion/pull/1471#discussion_r773529903



##########
File path: DEVELOPERS.md
##########
@@ -40,6 +40,57 @@ Testing setup:
 - `export PARQUET_TEST_DATA=$(pwd)/parquet-testing/data/`
 - `export ARROW_TEST_DATA=$(pwd)/testing/data/`
 
+
+## Test Organization
+
+DataFusion has several levels of tests in its [Test
+Pyramid](https://martinfowler.com/articles/practical-test-pyramid.html)
+and tries to follow [Testing Organization](https://doc.rust-lang.org/book/ch11-03-test-organization.html) in the The Book.
+
+This section highlights the most important test modules that exist
+
+### Unit tests
+
+Tests for the code in an individual module are defined in the same source file with a `test` module, following Rust convention
+
+For example, the logic for pruning predicates is defined in [pruning.rs](https://github.com/apache/arrow-datafusion/blob/main/datafusion/src/physical_optimizer/pruning.rs#L708) using the
+
+```rust
+#[cfg(test)]
+mod tests {
+...
+}
+```
+
+
+### Rust Integration Tests
+
+There are several tests of the public interface of the DataFusion library in the [tests](https://github.com/apache/arrow-datafusion/blob/master/datafusion/tests) directory.
+
+You can run these tests individually using a command such as
+
+```shell
+cargo test -p datafusion --tests sql
+```
+
+The tests are:

Review comment:
       @alamb @hntd187 sounds good.  i have not had a chance to start on this yet and likely wont be able to spend much time on it until i finish some other PRs.  @hntd187 it seems like you have a good plan and id be happy to follow your lead.  assuming that breaking out the sql functionality like that is the agreed upon approach maybe we could make a parent issue with sub tasks for each functionality /  internal thing and  then i could pick up on that once i have some more time?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org