You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Address Copilot review feedback on dynamo-build-tests and dynamo-run-tests
- Remove hardcoded tool paths; use <MSBuildPath> and <DotNetPath>
placeholders resolved from memory file or vswhere/where dotnet
- Prefer MSBuild over dotnet build (repo standard); dotnet build
--no-dependencies is now the fallback
- Clarify --no-dependencies failure case: rebuild production project
then test project, both with --no-dependencies
- Fix VisualizationTests -> WpfVisualizationTests in both skills,
with note about directory/project name mismatch
- Move OR filter example out of markdown table into a code block
to avoid escaped pipe being copied literally
- Move "Finding test projects" into the dynamo-run-tests workflow
as step 2, before "Ensure the DLL is current"
- Fix duplicate step 3 numbering in dynamo-run-tests
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: .agents/skills/dynamo-build-tests/SKILL.md
+21-21Lines changed: 21 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,39 +26,40 @@ Confirmation that the build succeeded with 0 errors in the target project, or a
26
26
27
27
### 1. Resolve tool paths
28
28
29
-
Check the `reference_build_tools.md` memory file for cached paths to `msbuild`, `dotnet`, and `vswhere`. If the memory file is missing or the cached path doesn't work, discover the path:
29
+
Do not hardcode tool paths. Obtain `<MSBuildPath>` and `<DotNetPath>` from your environment before running any commands:
30
+
31
+
-**Claude Code users**: read `reference_build_tools.md` from the personal memory file (`~/.claude/projects/<project>/memory/reference_build_tools.md` — not part of the repo). Update it if a path is stale.
This compiles only the specified project, relying on pre-built dependency DLLs already in the output folder. This avoids the `MSB4803` errors from `DynamoUnits` and `DesignScriptBuiltin` satellite assembly tasks.
48
+
> **Important**: When calling MSBuild from bash, quote all flag arguments (e.g. `"-p:Configuration=Release"`) to prevent the shell from interpreting `/p:` as a path.
47
49
48
-
**If `--no-dependencies` fails**(missing dependency DLLs), build the production project first:
50
+
**Fallback: `dotnet build --no-dependencies`**if MSBuild is unavailable. This compiles only the specified project against pre-built dependency DLLs already in the output folder, avoiding `MSB4803` errors from satellite assembly tasks:
**If `dotnet build` cannot work at all** (rare), fall back to MSBuild:
56
+
**If `dotnet build --no-dependencies` fails** because dependency DLLs are missing from the output folder, they need to be built first. Rebuild the production project, then the test project — both with `--no-dependencies`:
> **Important**: When calling MSBuild from bash, quote all flag arguments (e.g. `"-p:Configuration=Release"`) to prevent the shell from interpreting `/p:` as a path.
61
-
62
63
### 3. Verify success
63
64
64
65
Check the build output for `0 Error(s)` in the target project. Filter out known pre-existing errors from unrelated projects:
@@ -67,16 +68,15 @@ Check the build output for `0 Error(s)` in the target project. Filter out known
|`VisualizationTests`| Rendering and visualization tests |
79
+
> **Exception**: The visualization test assembly is `WpfVisualizationTests`, but its directory is `test/VisualizationTests/` — directory and project name differ. All other projects follow the `test/<Name>/<Name>.csproj` pattern.
80
80
81
81
Test DLLs are output to `bin/AnyCPU/Release/<TestProject>.dll`.
Copy file name to clipboardExpand all lines: .agents/skills/dynamo-run-tests/SKILL.md
+31-20Lines changed: 31 additions & 20 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,28 +25,45 @@ Pass/fail summary with counts. For failures: the failing test name, assertion me
25
25
26
26
## Workflow
27
27
28
-
### 1. Ensure the DLL is current
28
+
### 1. Resolve tool path
29
+
30
+
Do not hardcode the `dotnet` path. Obtain `<DotNetPath>` from your environment:
31
+
32
+
-**Claude Code users**: read `reference_build_tools.md` from the personal memory file (`~/.claude/projects/<project>/memory/reference_build_tools.md` — not part of the repo).
33
+
-**All users**: run `where dotnet` (Windows) or `which dotnet` (bash) to locate it.
34
+
35
+
### 2. Find the test project
36
+
37
+
Discover available test projects:
38
+
39
+
```bash
40
+
find test -name "*.csproj"| sort
41
+
```
42
+
43
+
> **Exception**: The visualization test assembly is `WpfVisualizationTests`, but its directory is `test/VisualizationTests/` — directory and project name differ. All other projects follow the `test/<Name>/<Name>.csproj` pattern.
44
+
45
+
### 3. Ensure the DLL is current
29
46
30
47
If you edited test or production code since the last build, rebuild first using `dynamo-build-tests`. A stale DLL will either miss new tests ("discovered 0 of 0") or run old code.
31
48
32
-
### 2. Run tests
49
+
### 4. Run tests
33
50
34
-
Use `dotnet test` with `--no-build` to skip recompilation (since you built in step 1):
51
+
Use `dotnet test` with `--no-build` to skip recompilation (since you built in step 3):
"<DotNetPath>"test test/<TestProject>/<TestProject>.csproj -c Release --no-restore --no-build --filter "FullyQualifiedName~<ClassName>" -v n
42
59
43
60
# Run all tests in a project
44
-
"/c/Program Files/dotnet/dotnet.exe"test test/<TestProject>/<TestProject>.csproj -c Release --no-restore --no-build -v n
61
+
"<DotNetPath>"test test/<TestProject>/<TestProject>.csproj -c Release --no-restore --no-build -v n
45
62
```
46
63
47
64
> **Important**: Always use `--no-restore --no-build` to avoid triggering the `MSB4803` satellite assembly errors from `DynamoUnits`/`DesignScriptBuiltin`. The DLL must already be built.
48
65
49
-
### 3. Interpret results
66
+
### 5. Interpret results
50
67
51
68
**Successful output** ends with:
52
69
```
@@ -71,9 +88,14 @@ The `--filter` flag uses `dotnet test` filter expressions:
71
88
|---|---|
72
89
| Test name contains substring |`"FullyQualifiedName~UnpinGroupedNote"`|
73
90
| Exact test name |`"FullyQualifiedName=DynamoCoreWpfTests.NoteViewTests.UnpinGroupedNote_NoteRemainsInGroup"`|
0 commit comments