У меня есть несколько ящиков в рабочей области. Один ящик определяет Черту, которую реализуют другие. Я хотел бы написать несколько тестовых функций, которые просто берут черту и гарантируют, что все инварианты всегда верны, и этот пример кода работает со всеми экземплярами черты. Поэтому я хотел бы определить набор тестов, и каждый другой ящик должен сказать: «Я определяю свои тесты как этот набор тестов с моей собственной реализацией Trait». Это возможно?
Полагаю, я мог бы определить макрос в моей библиотеке, который генерирует все тесты с использованием экземпляра Trait, но это смешало бы производственный и тестовый код в моей библиотеке. Может ли другой ящик в моей рабочей области ссылаться на тестовый модуль, присутствующий в папке тестов моего основного ящика?
Итак, в основном у меня есть:
workspace
|-- crate1
|-- src
|-- lib.rs
|-- tests
|-- harness.rs
|-- crate2
|-- src
|-- lib.rs
|-- tests
|-- test2.rs
И я бы хотел, чтобы test2.rs
смог использовать harness.rs
. Это возможно?