diff --git a/libs/pbo/src/lib.rs b/libs/pbo/src/lib.rs
index 5ee1eeb1..e36d63ce 100644
--- a/libs/pbo/src/lib.rs
+++ b/libs/pbo/src/lib.rs
@@ -15,6 +15,7 @@ mod error;
 pub mod file;
 mod model;
 mod read;
+pub mod tests;
 mod write;
 
 pub use error::Error;
diff --git a/libs/pbo/tests/utils.rs b/libs/pbo/src/tests.rs
similarity index 97%
rename from libs/pbo/tests/utils.rs
rename to libs/pbo/src/tests.rs
index 1eae32c0..f8f5edaa 100644
--- a/libs/pbo/tests/utils.rs
+++ b/libs/pbo/src/tests.rs
@@ -2,7 +2,7 @@
 
 use std::{fs::File, io::Read};
 
-use hemtt_pbo::{Checksum, Header, Mime, ReadablePbo};
+use crate::{Checksum, Header, Mime, ReadablePbo};
 
 #[must_use]
 #[allow(clippy::too_many_arguments)]
diff --git a/libs/pbo/tests/ace_weather.rs b/libs/pbo/tests/ace_weather.rs
index 8e81c68d..df5160e7 100644
--- a/libs/pbo/tests/ace_weather.rs
+++ b/libs/pbo/tests/ace_weather.rs
@@ -2,11 +2,12 @@
 
 use std::{fs::File, io::Read};
 
-use hemtt_pbo::{Checksum, Mime, WritablePbo};
+use hemtt_pbo::{
+    tests::{file, header, pbo},
+    Checksum, Mime, WritablePbo,
+};
 
-mod utils;
 use sha1::{Digest, Sha1};
-use utils::*;
 
 #[allow(clippy::too_many_lines)]
 #[test]
diff --git a/libs/pbo/tests/exported_mission.rs b/libs/pbo/tests/exported_mission.rs
index 69666b69..f62bdfb8 100644
--- a/libs/pbo/tests/exported_mission.rs
+++ b/libs/pbo/tests/exported_mission.rs
@@ -1,10 +1,8 @@
 #![allow(clippy::unwrap_used)]
 
-mod utils;
 use std::fs::File;
 
-use hemtt_pbo::Checksum;
-use utils::*;
+use hemtt_pbo::{tests::pbo, Checksum};
 
 #[test]
 fn exported_mission() {