#How can I run a zig tests which rely on code from a parent directory
1 messages · Page 1 of 1 (latest)
@coral cove from my understanding, these files should be visible to each other, the application builds with out issue, it's just when I attempt to run the tests on just lexer.zig
│ build.zig
│ build.zig.zon
│
├───src
│ │ main.zig
│ │
│ ├───lexer
│ │ lexer.zig
│ │
│ └───token
│ token.zig
how does your build.zig look like?
oh wait, you are using zig test that's why it does not work
you need to setup your tests in build.zig
The build.zig, is pretty bog standard
pub fn build(b: *std.Build) void {
const target = b.standardTargetOptions(.{});
const optimize = b.standardOptimizeOption(.{});
const exe = b.addExecutable(.{
.name = "MonkeyInterpreterZig",
.root_source_file = b.path("src/main.zig"),
.target = target,
.optimize = optimize,
});
b.installArtifact(exe);
const run_cmd = b.addRunArtifact(exe);
run_cmd.step.dependOn(b.getInstallStep());
if (b.args) |args| {
run_cmd.addArgs(args);
}
const run_step = b.step("run", "Run the app");
run_step.dependOn(&run_cmd.step);
const exe_unit_tests = b.addTest(.{
.root_source_file = b.path("src/main.zig"),
.target = target,
.optimize = optimize,
});
const run_exe_unit_tests = b.addRunArtifact(exe_unit_tests);
const test_step = b.step("test", "Run unit tests");
test_step.dependOn(&run_exe_unit_tests.step);
}```
https://github.com/Cloudef/zig-aio/blob/master/build.zig#L90-L110 You can see how I do tests here for example